Перевод записи Auto-loading vendor files (or any other file) с блога Cakebaker’a.
Если вы используете внешние классы, не относящиеся к CakePHP (т.е. не являющиеся готовыми компонентами, хелперами, и т.д., например - PhpMailer или классы Pear), вам приходится импортировать эти классы вручную с помощью вызова App::import(’Vendor’, ‘ClassName’). Этот вызов работает если ваши классы находятся в папке ‘vendors’. То есть в каждом контроллере, или модели, или любом другом месте где вы хотите использовать внешний класс, вам приходится его сначала импортировать. Это не очень удобно.
Читать дальше “Автоматическая загрузка внешних библиотек”
Теги: cakephp, php, совет
Я уже писал заметку для новичков в CakePHP, но понимания отличий работы платформы (framework) от обычного движка у неофитов все равно не хватает. Поэтому я решил написать несколько небольших заметок именно по особенностям и отличиям движков от фреймворка.
Читать дальше “Эссе о движках и фреймворках”
Теги: cakephp, php, движок
Я конечно понимаю что язык PHP простой и в нем многое допустимо. Понимаю, что на свете куча новичков, которые еще только учатся программировать. Вполне осознаю также что я и сам не спец. Но всегда когда я встречаю в коде ТАКОЕ меня коробит. А, блин, попадается с пугающей регулярностью.
Цитата из кода самописной панели администрирования сайта одного очень крупного завода Московской области:
Читать дальше “Горе-программисты или сказ про перевод номера месяца в название”
Теги: php, оптимизация, ошибка, юмор
Уметь быстро разбираться в чужом коде — страшно полезное умение. Сегодня звонил один из клиентов (пользуется у нас только хостингом). Говорит — так и так, закачал сайт, установил, настроил, потом поменял тему оформления у себя в движке — и теперь не могу зайти, все время выдает 404 ошибку.
Полез смотреть в чем дело.
Движок оказался — e107, я его честно говоря не люблю. По структуре ничего, но оформление — никакое. В хорошем движке как в человеке — все должно быть прекрасно, и код, и внешний вид админки, и дизайн сайта по-умолчанию. Все это говорит о внимательности авторов движка к деталям и серьезности разработки.
Читать дальше “Проблемы с SSL и движком e107″
Теги: php, движок, ошибка
Вольный перевод статьи Tidy Output Filtering с официального сайта CakePHP (http://bakery.cakephp.org/articles/view/tidy-output-filtering).
В CakePHP можно довольно просто отфильтровать весь выводимый контент через Tidy, для того чтобы удостовериться в его валидности (соответствию стандартам) и доступности посковикам. Использование Tidy позволяет не заботиться о тщательной разметке шаблонов и контента, что особенно актуально когда контент создается самими пользователями сайта или неопытными сотрудниками заказчика. Конечно, дополнительный фильтр влияет на производительность, но чаще всего это очень удобное и полезное решение.
Читать дальше “Фильтрация разметки страниц с использованием Tidy”
Теги: cakephp, php, валидация
Несколько месяцев назад мы работали над одним крупным проектом. Сайт создавался на CakePHP, на тот момент содержал 7 моделей и 14 контроллеров, общее количество записей в таблицах — несколько десятков тысяч. Каково же было наше удивление, когда придя в один прекрасный день утром на работу, мы увидели что больше половины данных из базы удалено. Да и оставшиеся данные исчезали прямо на глазах.
Дурацкая мысль - «хакеры!» - была опровергнута просмотром журнала веб-сервера. Оказалось что по сайту просто лазает бот поисковой системы. Лазает уже больше восьми часов — весь вечер, ночь и наступившее утро. Доступ к сайту мы тут же закрыли, базу — восстановили из резервной копии и начали анализировать почему это произошло.
Читать дальше “Проверяйте сайты на битые ссылки!”
Теги: cakephp, php, бот, Веб-разработка, ошибка
При создании современных сайтов приходится обязательно учитывать особенности работы поисковых машин с контентом страниц. Во всех проектах, написанных с использованием CakePHP тоже нужно реализовывать seo-функции, хотя бы — простановку уникальных заголовков и мета-тегов для всех страниц. А поскольку обычно страницы сайта на CakePHP обрабатываются разными контроллерами, задача может стать совсем нетривиальной.
Для проектов в нашей студии используется простой SeoComponent, позволяющий автоматически загружать из базы данных в макет (layout) заголовки и мета-теги, основываясь на адресе запрошенной страницы.
Читать дальше “Seo-компонент для CakePHP”
Теги: cakephp, php, Веб-разработка
Очень часто при разработке простых проектов нужно быстро подключить простую аутентификацию для запроса логина-пароля при попытке доступа к определенным страничкам сайта. Например, нужно закрыть от общего доступа временную администраторскую панель или запаролить секретную страничку. Это можно сделать с помощью компонента ValidationComponent. Его необходимо сохранить в папку app/controllers/components/ вашего проекта под именем validation.php.
Читать дальше “Простая аутентификация в CakePHP”
Теги: cakephp, php, Веб-разработка
Допустим, есть у нас таблица категорий «categories», построенная по самому простому принципу — id, name, parent_id. И есть список товаров, привязанных к этим категориям по полю «category_id». Список довольно большой — свыше двух тысяч наименований. Стандартным шеллом CakePHP можно подготовить функции в контроллере и вид (view) для постраничного просмотра списка товаров с помощью PaginatorHelper. Но проматывать больше сотни страниц для того чтобы найти нужный товар, крайне непродуктивно. Соответственно, надо сделать фильтрацию по категории товаров.
Подразумевается, что связь hasMany между категориями и товарами уже настроена. Обязательно также нужна и обратная ей — belongsTo.
Читать дальше “Фильтрация списка по категориям в CakePHP”
Теги: cakephp, php, Веб-разработка