Открыть список
Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

CodeIgniter Debug Toolbar

CodeIgniter
CodeIgniter Debug Toolbar
Многие видели девелоперский тулбар для фреймворка Kohana (слизанный, в свою очередь, с Symfony), который недавно выкладывали на хабре. Мне он очень понравился — захотелось поиметь такой и для себя.

Немножко поколдовав, получилось нечто похожее…
Читать дальше →
Всего голосов 54: ↑43 и ↓11 +32
Просмотры4.1K
Комментарии 40

Реализация компонентов в Kohana

Kohana
Представим себе ситуацию, что у нас на сайте есть виджет. Этот виджет повторяется на сайте на каждой странице. Как нам сделать дизайн кода так, чтобы забыть про этот виджет и сконцентрировать внимание на других проблемах?

Конечно мы не можем себе позволить обращаться к области данных из шаблона, иначе это указывало бы на нашу неграмотность. Во многих фрейверках есть для этого свои решения. Но я проведу аналогию с symfony. В последнем имеется такое понятие как компонент. Выглядит это примерно так: вы вызываете в шаблоне статический метод с указанием названия компонентов, далее происходит обращение к одноименному контроллеру, извлекаются данные из области данных и передаются в фрагмент шаблона, последний рендерится и код вставляется в нативный шаблон. Таким образом получается архитектура MVC вложенная друг в друга. Я немного упростил эту схему, сразу говорю, но суть передал точно.

Так вот. В Kohana готового решения нет. Поэтому я и написал простой способ реализации компонентов который решается в три строчки кода.

И так. Пишем хелпер widget.php и кидаем его в папку application/helpers. Содержание хелпера следующее:
Copy Source | Copy HTML
  1. <?php
  2. class widget
  3. {
  4.     public static function paste($className,$functionName,$parameters = null)
  5.     {
  6.         $controllerName = $className.'_Controller';
  7.         $controller = new $controllerName;
  8.         $controller->$functionName($parameters)->render(true);
  9.     }
  10. }
  11. ?>

В классе контроллера пишем метод обычного содержания только вместо рендеринга шаблона мы его возвращаем т.е пишет return. Я всегда использую немного переопределенный контроллер Template_Controller. Пример метода контроллера:

Copy Source | Copy HTML
  1. public function widget_example()
  2. {
  3.     return View::factory('_example.php',array('var' => 'Привет мир!'));
  4. }


Имя шаблона указываем с нижнего подчеркивания, что бы не путаться.
Теперь в любом шаблоне достаточно написать

Copy Source | Copy HTML
  1. <?php widget::paste('Index','widget_example')?>


И все — теперь вместо этой строки у нас отрендерится наш виджет. Вот так вот просто. Если необходимо то можем передать в компонент необходимые значения третьим аргументом в виде массива.
Кстати partial (symfony like) реализовываются простым включением в шаблон
Copy Source | Copy HTML
  1. <?php View::factory('template')->render() ?>

partial — это простое включение шаблона (для тех кто не знает)
P.S. Только давайте не будем разводить холивары по поводу Smarty(и т.п.) vs Native Template.
Есть много наработок по поводу Kohana — со временем опубликую цикл статей на блоге и здесь.
UPD. Перенести пост в блог Kohana немогу. Не хватает кармы
Всего голосов 9: ↑7 и ↓2 +5
Просмотры2.6K
Комментарии 29

Фабьен представил Symfony Components

Чулан
Перевод
Всем известно, что Symfony состоит из набора классов, работающих вмесете, но, отделенных друг от друга. Каждый из них может быть использован отдельно. Так, например, в своем проекте, не основанном на Symfony вы можете использовать библиотеки для работы с YAML или роутингом. На самом деле YAML-классы активно используются такими проектами как Doctrene и PHPUnit, а pookey.co.uk опубликовало интересную статью по использования роутинг-классов.

Однако, до этого момента такиму использованию классов не уделялось должного внимания и мало кто это делал. Мы решили, что многие библиотеки заслуживают большего внимания и решили публиковать их отдельно в проекте, называемом Symfony Components.

Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Просмотры345
Комментарии 4

В блоге о блоге

Чулан
Доброго времени суток. Вот всеже решил написать эту заметку, скорее всего в поисках помощи. Уже давно занимаюсь веб разработкой и являюсь неким эникейщиком, начиная от настройки серверов кончая версткой, наверное, многим это знакомо. В наше время мало владеть только одной профессией, нужно еще как минимум владеть смежными профессиями.
Хочу рассказать о своем блоге. Писал его ОЧЕНЬ долго, наверное это уже 3я версия сайта. Не сказать, что в нем есть что то ценное, контент большую часть составляют чужие статьи, но пишу и свои. Есть статьи с хабры, которые имхо отлично написаны и повторяются, иногда, с моими комментариями, на сайте. Я, лично, считаю, что «Information must be free». Конечно это не относиться ко всяким «школьникам» и «тем кто ищет легкой наживы».
Недавно познакомился с фреймворком symfony и для закрпеления изучения решил переписать сайт с его помощью. Думаю не плохо получилось. Конечно, не все дописано, но в общем хорошая основа уже есть. Есть свой pastebin, мини баш, сетевые утилиты, а также думаю сделать форум. Скорее всего нормально переписать существующий плагин для symfony, т.к. он написан ужасно.
Вообщем то хотелось узнать ваше мнение о блоге, конструктивная критика приветствуется.
Всего голосов 17: ↑6 и ↓11 -5
Просмотры142
Комментарии 19

Майская симфония для РНР-оркестра

Symfony
symfony camp

Что это?


При содействии WorldWebStudio и украинского комюнити по Symfony, 16 мая в Киеве планируется конференция разработчиков, пишущих на данном фреймворке.

Конференция проводится с целью популяризации Symfony среди украинских разработчиков, обмена опытом по использованию фреймворка в реальных задачах, а также обсуждения типичных проблем при разработке.
Читать дальше →
Всего голосов 34: ↑24 и ↓10 +14
Просмотры463
Комментарии 48

I18n без URL

Symfony
Недавно на работе столкнулся с интересной, на мой взгляд, задачей. На разрабатываемом сайте подразумевалось использование трех языков — украинский, русский, английский. Задача решалась с помощью фреймворка symfony 1.2. В принципе, стандарт, кроме одного пункта. УРЛа русской версии должна была выглядеть так: frontend_dev.php/articles/about английской и украинской соответственно frontend_dev.php/eng/articles/about frontend_dev.php/ukr/articles/about.
Читать дальше →
Всего голосов 10: ↑4 и ↓6 -2
Просмотры3.2K
Комментарии 10

Движок микроблоггинга Reactor

Open source
image
Все началось с того, что мы решили сделать свой микроблоггинговый сервис. Покопались в интернетах в поисках более-менее подходящего готового движка микроблоггинга, толком ничего не нашли. Потом рассмотрели кандидатуру движков обычного блоггинга — Wordpress, LiveStreet, BigStreet. Мы уже немного работали с ними, и решили не использовать в виду их архитектурных недостатков (наше ИМХО). Оставалось сделать что-то свое, но не с нуля, а используя фреймворк Symfony в связке с ORM Doctrine.

Будем краткими.
# Что это? — Движок микроблоггинга с картинками и настроениями, альфа версия. Пример работы движка — http://joyreactor.ru/
Читать дальше →
Всего голосов 75: ↑56 и ↓19 +37
Просмотры7.2K
Комментарии 57

Вышли две свежие книжки по Symfony

Symfony
Буквально вчера обнаружил новость от Fabien Potencier о том, что вышла вторая редакция книги по РНР-фреймворку Symfony 1.2 и книга The symfony 1.2 Reference Guide.
Книги, как и водится, доступны как для ORM Propel, так и для Doctrine.

Ознакомиться с полной новостью можно здесь.

Practical symfony 1.2 — second edition
Можно приобрести на Amazon:
Practical symfony 1.2 for Doctrine — second edition
Practical symfony 1.2 for Propel — second edition

Или же прочитать онлайн:
Doctrine
Propel

Ну и, конечно же, скачать PDF:
Doctrine
Propel

Читать дальше →
Всего голосов 5: ↑5 и ↓0 +5
Просмотры1.2K
Комментарии 0

Система Restoranonline.ru успешно запустилась и ищет партнеров в регионах

Я пиарюсь
image
Система Restoranonline.ru — уникальный сервис, объединяющий все стороны удаленного заказа еды из ресторанов клиентам.

Уникальность системы Restoranonline.ru заключается в следующем:


  • Ресторан получает абсолютно бесплатно персональный, полнофункциональный сайт службы доставки с собственным доменным именем (например — www.restoran-idzumo.ru ).
  • В своей собственной рекламе, ресторан рекламирует только адрес сайта своего Ресторана, подключенный в систему, а не сайт Системы.
  • Полная автоматизация всех внутренних процессов, документооборот, отчетность, биллинг
  • В ресторане для приемки заказа вообще может не быть интернета!
  • У системы собственный call-центр для обработки и согласования заявок
  • В системе есть своя курьерская служба, но можно подключить и стороннюю
Читать дальше →
Всего голосов 51: ↑36 и ↓15 +21
Просмотры540
Комментарии 74

Компонент Dependency Injection

Symfony
Новый компонент от Symfony касается крайне важного паттерна проектирования — Dependency Injection. Честно говоря, я много про него читал, но на практике не очень видел как применить, и теория была для меня довольно абстрактной. Симфонисты и здесь выдержали фирменный стиль. К компоненту приложена книжка, которая начинается с главы «что такое Dependency Injection»? И шаг за шагом некоторый учебный класс рефакторится в элегантное решение. Чтобы показать, что компонент может использоваться не только с Симфони, в качестве примеров используются и классы из Zend-фреймворка. Жалко только, что книжку нельзя скачать.

Вот еще один пример использования этого компонента с Zend-фреймворком.
Всего голосов 5: ↑3 и ↓2 +1
Просмотры6.2K
Комментарии 4

symfony 1.2.8 — частичный откат исправлений безопасности

Symfony
Сегодня в официальном блоге разработчиков Symfony обнаружил запись о том, что доступна версия 1.2.8 ( www.symfony-project.org/blog/2009/07/13/symfony-1-2-8-rolling-back-our-security-fix ).

Главная особенность этой версии — откат «исправленного» бага безопасности в админгенераторе. Ссылка на трак — trac.symfony-project.org/changeset/19819.

Со всем ченджлогом релиза Вы можете ознакомиться на странице — www.symfony-project.org/installation/1_2/changelog

Пора обновляться, товарищи :-)
Всего голосов 11: ↑7 и ↓4 +3
Просмотры492
Комментарии 4

Capifony. Или деплоим symfony проект через Capistrano

Symfony
Я уже год программирую на PHP с использованием symfony framework и нахожу в этом истинное удовольствие. Однако, есть некоторые процессы разработки сайта, которые данный фрэймворк не полностью покрывает, да и не обязан =)
Одним из таких процессов является деплоймент или разворачивание и обновление проекта на рабочем сервере. Для выполнения подобной рутинной операции было написано множество скриптов и одним из самых популярных является Capistrano. Он чрезвычайно прост в освоении, совершенен функционально и крайне гибок в настройке, однако, из коробки заточен под деплой RoR приложений, для чего собственно и создавался.
Сегодня я постараюсь вам рассказать как использовать Capistrano для деплоймента symfony проектов.
поехали
Всего голосов 11: ↑9 и ↓2 +7
Просмотры7.2K
Комментарии 13

Исследование возможностей view.yml

Symfony
Небольшое исследование на тему, какие все-таки возможности поддерживает view.yml в symfony.

Мне давно хотелось, чтобы все css и js файлы были подключены в одном месте. Из-за того, что я постоянно пользуюсь условными комментариями для отделения «богомерзких» браузеров, мне приходилось хранить все файлы прямо в шаблоне. В случае, если шаблонов — несколько, начинались проблемы из разряда «там добавили, здесь забыли». Поэтому было решено поковыряться в недрах symfony, благо в changelog к 1.2 русским по белому написано: добавлена поддержка условных комментариев.
Читать дальше →
Всего голосов 6: ↑4 и ↓2 +2
Просмотры941
Комментарии 6

ORM – зло или Как я пытался кэшировать Propel в Symfony

Symfony
Работая над одним проектом (соц. сетью) передо мной встала задача «подружить» модель данных с memcache. Как Вы уже поняли из заголовка, проект написан на symfony framework, а в качестве ORM используется Propel.
Читать дальше →
Всего голосов 20: ↑10 и ↓10 0
Просмотры2.3K
Комментарии 16

Вышли релиз-кандидаты сразу двух версий symfony 1.3 и 1.4

Чулан
Причиной одновременного выпуска двух версий, является то что версия 1.3 поддерживает устаревшие (deprecated) части фреймворка (для апгрейда проектов с 1.2), а 1.4 рекомендована для новых проектов.
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Просмотры242
Комментарии 7

Возможность получить информацию о сайте на symfony

Информационная безопасность
В окружении dev symfony по-умолчанию выдает очень много отладочной информации. Рассказывает о сервере, отображает используемые конфигурации, показывает запросы к базе и версии используемых компонентов. И, имея эту информацию, можно узнать о уязвимостях сайта или подсмотреть логины/пароли/параметры доступа, указанные в настройках (но не базы данных).

Т.к. проект открытый можно посмотреть состояние кода для любой версии и посмотреть уязвимости в багтрекере.

Результаты поиска: Яндекс, Google. Примеры — poehali.org, pallada.ru.

Новость не претендует на новизну или оригинальность. Господа, будьте внимательнее и используйте ./symfony project:deploy (кто-нибудь запускал это в Windows?) с rsync_exclude: *_dev.php
Всего голосов 23: ↑19 и ↓4 +15
Просмотры1.1K
Комментарии 31

Кеширование в Symfony. Идеология HTML-кеширования. Components & partials

Symfony
За 2.5 года использования symfony мне постоянно приходится сталкиваться с проблемой недопонимания программистами на symfony идеи html-кеширования. Цель этого поста — донести до светлых умов symfony-девелоперов осознание парадигмы использования partials & components.

Читать дальше →
Всего голосов 18: ↑15 и ↓3 +12
Просмотры2.8K
Комментарии 23