CakePHP — платформа для разработки веб-сайтов, написанная по всем принципам объектно-ориентированного программирования. Все блоки платформы представлены как объекты, со сложными схемами взаимодействия. К чему это я? Не стесняйтесь использовать принцип наследования - расширяйте функциональность стандартных блоков платформы.
Рассмотрим на примере хелперов. У нас в студии часто попадаются проекты с большим количеством статических страниц. Их удобнее хранить отдельными представлениями (views), чтобы не было проблем со вставкой и обработкой форм, картинок, элементов динамики и тому подобного. Опять же часто в этих статических страничках бывают произвольно разбросаны по тексту однотипные элементы, например картинки с одинаковым классом css или таблицы с хитрым заголовком.
Читать дальше “Расширяем функциональность стандартных хелперов”
Теги: cakephp
Вообще говоря, утилит для создания карты сайта сейчас полно. Но поскольку у нас в студии используются различные операционные системы, то требовалось найти кроссплатформенное решение. Плюс, были необходимы максимальные возможности по автоматизации.
Выбор пал на утилиту sitemap_gen.py. Представляет собой один единственный файл-скрипт на языке Python. Соответственно, требует чтобы Питон был установлен в системе. Скачать и установить Python для Windows можно здесь.
Читать дальше “Создаем Sitemap скриптом на Python”
Теги: Веб-разработка
Платформа CakePHP построена по принципу MVC — Модель-Вид-Контроллер. Модель представляет собой данные, вызовами функций модели выполняются запросы к СУБД. Контроллер управляет обработкой этих данных, связывает данные с внешним оформлением. Вид — это внешнее оформление данных, шаблон html-кода. Более подробно о принципах MVC читайте здесь. Для создания простейшей странички в CakePHP вам необходимо создать три файла — соответственно модель, контроллер и вид.
Читать дальше “Для новичков в CakePHP — как создать первую страничку?”
Теги: cakephp
Сегодня у этого блога первый маленький юбилей — 10-й пост. Скорость набрана не плохая, буду очень стараться не уронить планку.
Очень часто в своих проектах нам приходится реализовывать хранение и вывод иерархических данных — всевозможные древовидные структуры разделов и подразделов статей, категории товаров интернет-магазинов, папки с фотографиями и тому подобное. Многие организуют такие списки через простейшие id, name, parent_id, но у этого способа масса недостатков. Один из них — необходимость рекурсии, если неизвестен уровень вложенности искомого раздела. К счастью, в CakePHP есть встроенное средство для работы с иерархическими данными TreeBehavior, работающий по алгоритму MPTT (Multi Path Tree Traversal). Подробнее об этом алгоритме я напишу в следующий раз. Все примеры кода взяты из официальной документации на CakePHP.
Читать дальше “Использование TreeBehavior в CakePHP”
Теги: cakephp, Веб-разработка
В Пекарне CakePHP появилась статья с примерами кода для автоматического создания карты сайта в любом проекте. Предлагаю здесь ее перевод.
Чем большее распространение получает CakePHP, чем больше сайтов использует эту платформу, тем чаще возникает необходимость в автоматическом создании и обновлении sitemap’ов. Предлагаю простое сочетание вида и контроллера для оповещения пользователей и поисковых машин о новом контенте на вашем сайта.
Хотя sitemap’ы и не обязательны, но поддерживаются уже почти всеми поисковиками. С помощью CakePHP можно создавать их автоматически. Такие карты будут всегда самыми свежими и отражать весь контент, представленный на сайте. Это помогает быстрее достичь первых строк выдачи поисковиков.
Читать дальше “Автоматическое создание Sitemap в CakePHP”
Теги: cakephp, Веб-разработка
CakePHP — это платформа (framework) для упрощенной разработки веб-приложений на языке php. Сейчас существует уже целая куча подобных платформ, большинство из них более или менее слизаны с Ruby On Rails. Это вполне обосновано — php установлен на 90% всех хостинговых серверов в мире, а ruby пока еще только набирает обороты. В нашей студии CakePHP используется более двух лет, мы узнали о нем из анонса в девелоперской сети IBM.
Что нам дает использование этой платформы? Расширяемость и адаптацию. Каждый заказчик делает сайт с какой-то коммерческой целью. У каждого заказчика так или иначе отличается сфера и вид деятельности. Соответственно двух абсолютно одинаковых сайтов — не бывает.
Читать дальше “Плюсы и минусы CakePHP”
Теги: cakephp, работа
Начало осени, начало учебного года — хорошее время чтобы переосмыслить ошибки прошедших кварталов и подвести некоторые итоги. Как раз есть еще шанс что-то успеть исправить до конца года.
В ходе работы в веб-студии я получил опыт по составлению бизнес-планов и их реализации. Опыт важный, как говорится, многие шаблоны разорваны. Попробую описать те моменты, что уже оформились в голове.
Читать дальше “Основные принципы функционирования веб-студии”
Теги: бизнес, планирование, работа
Несколько месяцев назад мы работали над одним крупным проектом. Сайт создавался на CakePHP, на тот момент содержал 7 моделей и 14 контроллеров, общее количество записей в таблицах — несколько десятков тысяч. Каково же было наше удивление, когда придя в один прекрасный день утром на работу, мы увидели что больше половины данных из базы удалено. Да и оставшиеся данные исчезали прямо на глазах.
Дурацкая мысль - «хакеры!» - была опровергнута просмотром журнала веб-сервера. Оказалось что по сайту просто лазает бот поисковой системы. Лазает уже больше восьми часов — весь вечер, ночь и наступившее утро. Доступ к сайту мы тут же закрыли, базу — восстановили из резервной копии и начали анализировать почему это произошло.
Читать дальше “Проверяйте сайты на битые ссылки!”
Теги: cakephp, php, бот, Веб-разработка, ошибка
При создании современных сайтов приходится обязательно учитывать особенности работы поисковых машин с контентом страниц. Во всех проектах, написанных с использованием CakePHP тоже нужно реализовывать seo-функции, хотя бы — простановку уникальных заголовков и мета-тегов для всех страниц. А поскольку обычно страницы сайта на CakePHP обрабатываются разными контроллерами, задача может стать совсем нетривиальной.
Для проектов в нашей студии используется простой SeoComponent, позволяющий автоматически загружать из базы данных в макет (layout) заголовки и мета-теги, основываясь на адресе запрошенной страницы.
Читать дальше “Seo-компонент для CakePHP”
Теги: cakephp, php, Веб-разработка
Очень часто при разработке простых проектов нужно быстро подключить простую аутентификацию для запроса логина-пароля при попытке доступа к определенным страничкам сайта. Например, нужно закрыть от общего доступа временную администраторскую панель или запаролить секретную страничку. Это можно сделать с помощью компонента ValidationComponent. Его необходимо сохранить в папку app/controllers/components/ вашего проекта под именем validation.php.
Читать дальше “Простая аутентификация в CakePHP”
Теги: cakephp, php, Веб-разработка