Дек 03 2008

Автоматическая загрузка внешних библиотек

Раздел: Веб-разработкаМета @ 09:33

Перевод записи Auto-loading vendor files (or any other file) с блога Cakebaker’a.

Если вы используете внешние классы, не относящиеся к CakePHP (т.е. не являющиеся готовыми компонентами, хелперами, и т.д., например - PhpMailer или классы Pear), вам приходится импортировать эти классы вручную с помощью вызова App::import(’Vendor’, ‘ClassName’). Этот вызов работает если ваши классы находятся в папке ‘vendors’. То есть в каждом контроллере, или модели, или любом другом месте где вы хотите использовать внешний класс, вам приходится его сначала импортировать. Это не очень удобно.

Читать дальше “Автоматическая загрузка внешних библиотек”

Теги: , ,


Сен 28 2008

Эссе о движках и фреймворках

Раздел: ВсякоеМета @ 21:13

Я уже писал заметку для новичков в CakePHP, но понимания отличий работы платформы (framework) от обычного движка у неофитов все равно не хватает. Поэтому я решил написать несколько небольших заметок именно по особенностям и отличиям движков от фреймворка.

Читать дальше “Эссе о движках и фреймворках”

Теги: , ,


Сен 25 2008

Горе-программисты или сказ про перевод номера месяца в название

Раздел: ВсякоеМета @ 23:07

Я конечно понимаю что язык PHP простой и в нем многое допустимо. Понимаю, что на свете куча новичков, которые еще только учатся программировать. Вполне осознаю также что я и сам не спец. Но всегда когда я встречаю в коде ТАКОЕ меня коробит. А, блин, попадается с пугающей регулярностью.

Цитата из кода самописной панели администрирования сайта одного очень крупного завода Московской области:

Читать дальше “Горе-программисты или сказ про перевод номера месяца в название”

Теги: , , ,


Сен 21 2008

Проблемы с SSL и движком e107

Раздел: ВсякоеМета @ 23:32

Уметь быстро разбираться в чужом коде — страшно полезное умение. Сегодня звонил один из клиентов (пользуется у нас только хостингом). Говорит — так и так, закачал сайт, установил, настроил, потом поменял тему оформления у себя в движке — и теперь не могу зайти, все время выдает 404 ошибку.

Полез смотреть в чем дело.

Движок оказался — e107, я его честно говоря не люблю. По структуре ничего, но оформление — никакое. В хорошем движке как в человеке — все должно быть прекрасно, и код, и внешний вид админки, и дизайн сайта по-умолчанию. :) Все это говорит о внимательности авторов движка к деталям и серьезности разработки.

Читать дальше “Проблемы с SSL и движком e107″

Теги: , ,


Сен 13 2008

Фильтрация разметки страниц с использованием Tidy

Раздел: Веб-разработкаМета @ 11:05

Вольный перевод статьи Tidy Output Filtering с официального сайта CakePHP (http://bakery.cakephp.org/articles/view/tidy-output-filtering).

В CakePHP можно довольно просто отфильтровать весь выводимый контент через Tidy, для того чтобы удостовериться в его валидности (соответствию стандартам) и доступности посковикам. Использование Tidy позволяет не заботиться о тщательной разметке шаблонов и контента, что особенно актуально когда контент создается самими пользователями сайта или неопытными сотрудниками заказчика. Конечно, дополнительный фильтр влияет на производительность, но чаще всего это очень удобное и полезное решение.

Читать дальше “Фильтрация разметки страниц с использованием Tidy”

Теги: , ,


Сен 04 2008

Проверяйте сайты на битые ссылки!

Раздел: Веб-разработкаМета @ 22:56

Несколько месяцев назад мы работали над одним крупным проектом. Сайт создавался на CakePHP, на тот момент содержал 7 моделей и 14 контроллеров, общее количество записей в таблицах — несколько десятков тысяч. Каково же было наше удивление, когда придя в один прекрасный день утром на работу, мы увидели что больше половины данных из базы удалено. Да и оставшиеся данные исчезали прямо на глазах.

Дурацкая мысль - «хакеры!» - была опровергнута просмотром журнала веб-сервера. Оказалось что по сайту просто лазает бот поисковой системы. Лазает уже больше восьми часов — весь вечер, ночь и наступившее утро. Доступ к сайту мы тут же закрыли, базу — восстановили из резервной копии и начали анализировать почему это произошло.

Читать дальше “Проверяйте сайты на битые ссылки!”

Теги: , , , ,


Сен 03 2008

Seo-компонент для CakePHP

Раздел: Веб-разработкаМета @ 23:03

При создании современных сайтов приходится обязательно учитывать особенности работы поисковых машин с контентом страниц. Во всех проектах, написанных с использованием CakePHP тоже нужно реализовывать seo-функции, хотя бы — простановку уникальных заголовков и мета-тегов для всех страниц. А поскольку обычно страницы сайта на CakePHP обрабатываются разными контроллерами, задача может стать совсем нетривиальной.

Для проектов в нашей студии используется простой SeoComponent, позволяющий автоматически загружать из базы данных в макет (layout) заголовки и мета-теги, основываясь на адресе запрошенной страницы.

Читать дальше “Seo-компонент для CakePHP”

Теги: , ,


Сен 02 2008

Простая аутентификация в CakePHP

Раздел: Веб-разработкаМета @ 22:54

Очень часто при разработке простых проектов нужно быстро подключить простую аутентификацию для запроса логина-пароля при попытке доступа к определенным страничкам сайта. Например, нужно закрыть от общего доступа временную администраторскую панель или запаролить секретную страничку. Это можно сделать с помощью компонента ValidationComponent. Его необходимо сохранить в папку app/controllers/components/ вашего проекта под именем validation.php.

Читать дальше “Простая аутентификация в CakePHP”

Теги: , ,


Сен 01 2008

Фильтрация списка по категориям в CakePHP

Раздел: Веб-разработкаМета @ 22:49

Допустим, есть у нас таблица категорий «categories», построенная по самому простому принципу — id, name, parent_id. И есть список товаров, привязанных к этим категориям по полю «category_id». Список довольно большой — свыше двух тысяч наименований. Стандартным шеллом CakePHP можно подготовить функции в контроллере и вид (view) для постраничного просмотра списка товаров с помощью PaginatorHelper. Но проматывать больше сотни страниц для того чтобы найти нужный товар, крайне непродуктивно. Соответственно, надо сделать фильтрацию по категории товаров.

Подразумевается, что связь hasMany между категориями и товарами уже настроена. Обязательно также нужна и обратная ей — belongsTo.

Читать дальше “Фильтрация списка по категориям в CakePHP”

Теги: , ,