Deprecated: Assigning the return value of new by reference is deprecated in /home/spwebru/com/wp-settings.php on line 472

Deprecated: Assigning the return value of new by reference is deprecated in /home/spwebru/com/wp-settings.php on line 487

Deprecated: Assigning the return value of new by reference is deprecated in /home/spwebru/com/wp-settings.php on line 494

Deprecated: Assigning the return value of new by reference is deprecated in /home/spwebru/com/wp-settings.php on line 530

Deprecated: Assigning the return value of new by reference is deprecated in /home/spwebru/com/wp-includes/cache.php on line 103

Deprecated: Assigning the return value of new by reference is deprecated in /home/spwebru/com/wp-includes/query.php on line 21

Deprecated: Assigning the return value of new by reference is deprecated in /home/spwebru/com/wp-includes/theme.php on line 623
Веб-разработка - Программируем на CakePHP - Часть 2


Сен 11 2008

Расширяем функциональность стандартных хелперов

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

CakePHP — платформа для разработки веб-сайтов, написанная по всем принципам объектно-ориентированного программирования. Все блоки платформы представлены как объекты, со сложными схемами взаимодействия. К чему это я? Не стесняйтесь использовать принцип наследования - расширяйте функциональность стандартных блоков платформы.

Рассмотрим на примере хелперов. У нас в студии часто попадаются проекты с большим количеством статических страниц. Их удобнее хранить отдельными представлениями (views), чтобы не было проблем со вставкой и обработкой форм, картинок, элементов динамики и тому подобного. Опять же часто в этих статических страничках бывают произвольно разбросаны по тексту однотипные элементы, например картинки с одинаковым классом css или таблицы с хитрым заголовком.

Читать дальше “Расширяем функциональность стандартных хелперов”

Теги:


Сен 10 2008

Создаем Sitemap скриптом на Python

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

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

Выбор пал на утилиту sitemap_gen.py. Представляет собой один единственный файл-скрипт на языке Python. Соответственно, требует чтобы Питон был установлен в системе. Скачать и установить Python для Windows можно здесь.

Читать дальше “Создаем Sitemap скриптом на Python”

Теги:


Сен 09 2008

Для новичков в CakePHP — как создать первую страничку?

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

Платформа CakePHP построена по принципу MVC — Модель-Вид-Контроллер. Модель представляет собой данные, вызовами функций модели выполняются запросы к СУБД. Контроллер управляет обработкой этих данных, связывает данные с внешним оформлением. Вид — это внешнее оформление данных, шаблон html-кода. Более подробно о принципах MVC читайте здесь. Для создания простейшей странички в CakePHP вам необходимо создать три файла — соответственно модель, контроллер и вид.

Читать дальше “Для новичков в CakePHP — как создать первую страничку?”

Теги:


Сен 08 2008

Использование TreeBehavior в CakePHP

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

Сегодня у этого блога первый маленький юбилей — 10-й пост. Скорость набрана не плохая, буду очень стараться не уронить планку.

Очень часто в своих проектах нам приходится реализовывать хранение и вывод иерархических данных — всевозможные древовидные структуры разделов и подразделов статей, категории товаров интернет-магазинов, папки с фотографиями и тому подобное. Многие организуют такие списки через простейшие id, name, parent_id, но у этого способа масса недостатков. Один из них — необходимость рекурсии, если неизвестен уровень вложенности искомого раздела. К счастью, в CakePHP есть встроенное средство для работы с иерархическими данными TreeBehavior, работающий по алгоритму MPTT (Multi Path Tree Traversal). Подробнее об этом алгоритме я напишу в следующий раз. Все примеры кода взяты из официальной документации на CakePHP.

Читать дальше “Использование TreeBehavior в CakePHP”

Теги: ,


Сен 07 2008

Автоматическое создание Sitemap в CakePHP

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

В Пекарне CakePHP появилась статья с примерами кода для автоматического создания карты сайта в любом проекте. Предлагаю здесь ее перевод.

Чем большее распространение получает CakePHP, чем больше сайтов использует эту платформу, тем чаще возникает необходимость в автоматическом создании и обновлении sitemap’ов. Предлагаю простое сочетание вида и контроллера для оповещения пользователей и поисковых машин о новом контенте на вашем сайта.

Хотя sitemap’ы и не обязательны, но поддерживаются уже почти всеми поисковиками. С помощью CakePHP можно создавать их автоматически. Такие карты будут всегда самыми свежими и отражать весь контент, представленный на сайте. Это помогает быстрее достичь первых строк выдачи поисковиков.

Читать дальше “Автоматическое создание Sitemap в CakePHP”

Теги: ,


Сен 06 2008

Плюсы и минусы CakePHP

Раздел: Веб-разработка, ВсякоеМета @ 22:53

CakePHP — это платформа (framework) для упрощенной разработки веб-приложений на языке php. Сейчас существует уже целая куча подобных платформ, большинство из них более или менее слизаны с Ruby On Rails. Это вполне обосновано — php установлен на 90% всех хостинговых серверов в мире, а ruby пока еще только набирает обороты. В нашей студии CakePHP используется более двух лет, мы узнали о нем из анонса в девелоперской сети IBM.

Что нам дает использование этой платформы? Расширяемость и адаптацию. Каждый заказчик делает сайт с какой-то коммерческой целью. У каждого заказчика так или иначе отличается сфера и вид деятельности. Соответственно двух абсолютно одинаковых сайтов — не бывает.

Читать дальше “Плюсы и минусы CakePHP”

Теги: ,


Сен 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”

Теги: , ,


« Предыдущая страницаСледующая страница »