Содержание
- 2. Этот доклад был прочитан на конференции Байнет 2.2 Beta. Минск, 11-12 сентября 2008. официальный сайт: www.bynet2.org
- 3. Обычная разработка Cms 1 Cms 2 Super CMS Лучшая в мире CMS, потому, что я написал
- 5. Потребность в фреймворках Разработка нестандартных проектов. Желание иметь под рукой хороший инструмент, который будет: - развиваться
- 6. Преимущества фреймворков Один зверь, вместо зоопарка Ускорение сроков разработки Меньше внимания на мелочи, больше на бизнес
- 7. Php-фреймворки: codeIgniter cakePHP Symfony Zend Framework
- 8. Цитируемость фреймворков в поисковиках
- 9. Cake PHP
- 10. CakePHP::Возможности Совместим с PHP4 и PHP5 MVC Своя файловая структура Своя абстракция данных (либо Adodb, PEAR::Db)
- 11. CakePHP::Обработка запросов
- 12. CakePHP::Соглашения Класс KissesAndHugsController должен храниться в файле kisses_and_hugs_controller.php Название модели записывается в ед. числе: Book, MyBook,
- 13. CakePHP::Контроллеры index – метод по умолчанию ( site.com/books/ ) Методы контроллера beforeFilter – до логики beforeRender
- 14. CakePHP::Модели Доступные методы в каждой модели: beforeFind() afterFind() beforeValidate() beforeSave() afterSave() beforeDelete() afterDelete()
- 15. CakePHP::Шаблоны Чистый PHP Smarty Место нахождения шаблона: /app/views/people/index.tpl
- 16. CakePHP::Проекты Fileshifter.com Server: Pentium 3, 733mhz, 512MB RAM, 2TB SATA RAID. OS: Fedora Linux, ext3 filesystem.
- 17. Code Igniter
- 18. CodeIgniter Текущая версия 1.6.3 Гибкость Плагины / Хелперы Скаффолдинг Простота (loose coupling) MVC Поддержка PHP4 Настройка
- 19. CI::Ход работы приложения
- 20. CodeIgniter::модели Классы моделей хранятся в папке application/models/ Класс: Model_name Имя файла: application/models/user_model.php Загрузка: $this->load->model('Model_name'); $this->Model_name->function();
- 21. CodeIgniter::Контроллеры application/config/routes.php – маршруты $route['default_controller'] = ‘XXX_controller'; class My_class extends Controller { …. } _remap ()
- 22. CodeIgniter::View class Privet extends Controller { …. } Загрузка: $this->load->view('name');
- 23. Symfony
- 24. Symfony::использует Creole – абстракция с БД Propel ( PDO с 1.2) Prado для i18n Spyc YAML
- 25. Symfony::возможности I18n, l10n, cache, валидация и т.п. Scaffolding Генерация кода AdminGenerator Независимые блоки (Loose coupling) Маршрутизация
- 26. Symfony::особенности Все классы начинаются с ‘sf’ (стандартные) class ##MODULE_NAME##Actions extends sfActions Много различного рода конфигурационных файлов.
- 28. Symfony::Известные проекты bookmarks.yahoo.com (20 млн пользователей) www.splitgames.fr (сайт обмена играми) www.kuss.de (сайт знакомств) www.winkel.ro (доска объявлений)
- 30. Zend Framework (ZF) Acl (роли и ресурсы) Auth (openId, Microsoft InfoCard) Cache / Loader Config /
- 31. Новое в ZF 1.6 RC1 Интеграция с Dojo Поддержка с SOAP Unit-тесты для контроллеров Поддержка индексных
- 32. ZF в цифрах Более 7 миллионов загрузок Более 500 разработчиков Более 1000 страниц в справочнике Более
- 33. ZF::соглашения Class My_Class_Name должен находится в файле: My/Class/Name.php Cтиль кода во многом совпадает со стилями PEAR
- 34. ZF::Front Controller Pattern
- 35. Zend_Controller_Response_Http
- 36. ZF::Модели Zend_Db_Table PDO $db = Zend_Db::factory($cfgDb->type, $params); Zend_Db_Table::setDefaultAapter($db); Zend_Registry::set("DB", $db);
- 37. ZF::Контроллеры Zend_Controller_Action ErrorHandler plugin ViewRenderer action helper plugin preDispatch postDispatch Init
- 38. ZF::View interface Zend_View_Interface public function render($name); public function assign($name); Zend_View_Abstract basePath, filters, helpers, _setHelperClass (filter) Zend/Controller/Action/Helper/ViewRenderer
- 39. ZF::Проекты www.magentocommerce.com – движок для e-commerce, 0.5млн скачиваний, 30K users, 70 партнеров, 60+ языков, 150+ расширений
- 40. Производительность Почти Hello World test ;-)
- 41. Обычная страница без ORM Ыф Вид теста: ab –n 1000 –c XXX 512 ram, Intel Pentium
- 42. Вместе с ORM, без кеша. Ыф 512Mb RAM 1.8Ghz AMD Sempron под Ubuntu Gutsy (7.10)
- 43. Ыф 512Mb RAM 1.8Ghz AMD Sempron под Ubuntu Gutsy (7.10) Вместе с ORM, APC кэшем Ыф
- 44. Symfony performance
- 45. Проект на Zend Framework
- 46. ZF::Пример проекта. Создаем сайт-сообщество. Несколько языков, несколько доменов, различные уровни доступа к ресурсам, маршрутизация, ORM.
- 47. Организация разработки Zend Studio for Eclipse (или просто phpEclipse) Cruise Control + phpUnderControl PHPUnit (Себастьян Бергман)
- 48. Zend_Config site.ru.xml site.eu.xml site.zone.xml en ru
- 49. bootstrap.php initView(); initRoutes(); initFrontend();
- 50. $view = new Socnet_View_Smarty(); $vRender = new Zend_Controller_Action_Helper_ViewRenderer($view); $vRender->setViewBasePathSpec( dirname(__FILE__).'/V/smarty/templates') ->setViewScriptPathSpec(':module/:controller/:action.:suffix') ->setViewScriptPathNoControllerSpec(':action.:suffix') ->setViewSuffix('tpl'); Zend_Controller_Action_HelperBroker::addHelper($vRender);
- 51. Auth: $authAdapter = new Zend_Auth_Adapter_DbTable( $db, 'user', 'login', 'pass'); Zend_Registry::set("Auth", $authAdapter); Class myAdapter extends Zend_Auth_Adapter_Interface public
- 52. ACL $roleAdmin = new Zend_Acl_Role(Socnet_Auth_Acl::ADMIN); $this->addRole($roleAdmin, $roleMember); $this->addResource('forum/topic'); $this->deny(null, null); // Запрет всем для всего. $this->allow(null,
- 53. Маршрутизация $route = new Zend_Controller_Router_Route(ajax/:widgetName/:widgetAction', array( 'controller' => ‘ajax', 'action' => 'index', 'widgetName' => '', 'widgetAction'
- 55. Unit-тестирование /tests Auth Controller Domain Model Members AllTests.php setUpEnvinronment.php
- 58. Модели /generated |- BaseModelName ParticularModel extends BaseModelName phpDoctrine .yml fixtures
- 59. if (extension_loaded('memcache')) { $frontendOptions = array( 'lifetime' => 7200, // cache lifetime of 2 hours 'automatic_serialization'
- 60. Диспетчеризация extends Zend_Controller_Dispatcher_Standard $action = $this->getActionMethod($request); $doCall = !method_exists($controller, $action); $request->setDispatched(true); $controller->preDispatch(); $xajaxargs = $controller->_page->Xajax->getRequestParams(); $sResponse
- 61. motofriends.ru
- 62. Выводы:
- 63. Полезные ссылки Cakephp.org (cake-php.ru) – сайт фреймворка Cakeforge.com – набор готовых проектов на cake codeigniter.com (code-igniter.ru)
- 64. http://phpimpact.wordpress.com/2008/07/28/zend-framework-architecture/ (архитектура Zend’a) httphttp://http://wikihttp://wiki.http://wiki.ringsidenetworkshttp://wiki.ringsidenetworks.http://wiki.ringsidenetworks.orghttp://wiki.ringsidenetworks.org/http://wiki.ringsidenetworks.org/displayhttp://wiki.ringsidenetworks.org/display/http://wiki.ringsidenetworks.org/display/ringsidehttp://wiki.ringsidenetworks.org/display/ringside/http://wiki.ringsidenetworks.org/display/ringside/Layeringhttp://wiki.ringsidenetworks.org/display/ringside/Layering+http://wiki.ringsidenetworks.org/display/ringside/Layering+andhttp://wiki.ringsidenetworks.org/display/ringside/Layering+and+http://wiki.ringsidenetworks.org/display/ringside/Layering+and+Cachinghttp://wiki.ringsidenetworks.org/display/ringside/Layering+and+Caching+http://wiki.ringsidenetworks.org/display/ringside/Layering+and+Caching+Design (слои в архитектуре) http://www.zend.com/en/products/platform/ (Zend Platform – aka Php Application Server –
- 66. Скачать презентацию