Слайды и текст доклада
Pic.1
Граков Алексей Antalika. com
Pic.2
Этот доклад был прочитан на конференции Байнет 2. 2 Beta. Минск, 11-12 сентября 2008. официальный сайт: Этот доклад был прочитан на конференции Байнет 2. 2 Beta. Минск, 11-12 сентября 2008. …
Pic.3
Обычная разработка Cms 1 Cms 2 Super CMS Лучшая в мире CMS, потому, что я написал ее сам! Зачем что-то еще?
Pic.5
Потребность в фреймворках Разработка нестандартных проектов. Желание иметь под рукой хороший инструмент, который будет: - развиваться - иметь хорошую документацию - иметь качественный код - …
Pic.6
Преимущества фреймворков Один зверь, вместо зоопарка Ускорение сроков разработки Меньше внимания на мелочи, больше на бизнес логику Больший контроль над процессом и качеством разработки Хорошая …
Pic.7
Php-фреймворки: codeIgniter cakePHP Symfony Zend Framework
Pic.8
Цитируемость фреймворков в поисковиках
Pic.10
CakePHP::Возможности Совместим с PHP4 и PHP5 MVC Своя файловая структура Своя абстракция данных (либо Adodb, PEAR::Db) Поддержка плагинов Валидация Scaffolding Маршрутизация запросов Компоненты / …
Pic.11
CakePHP::Обработка запросов
Pic.12
CakePHP::Соглашения Класс KissesAndHugsController должен храниться в файле kisses_and_hugs_controller. php Название модели записывается в ед. числе: Book, MyBook, и т. п. Названия таблиц должны быть …
Pic.13
CakePHP::Контроллеры index – метод по умолчанию ( site. com/books/ ) Методы контроллера beforeFilter – до логики beforeRender – до view afterFilter – после логики и после view
Pic.14
CakePHP::Модели Доступные методы в каждой модели: beforeFind() afterFind() beforeValidate() beforeSave() afterSave() beforeDelete() afterDelete()
Pic.15
CakePHP::Шаблоны Чистый PHP Smarty Место нахождения шаблона: /app/views/people/index. tpl
Pic.16
CakePHP::Проекты Fileshifter. com Server: Pentium 3, 733mhz, 512MB RAM, 2TB SATA RAID. OS: Fedora Linux, ext3 filesystem. Объем данных на сервере: 1. 37 TB. Ежедневный траффик: 28 GB в среднем. Время …
Pic.18
CodeIgniter Текущая версия 1. 6. 3 Гибкость Плагины / Хелперы Скаффолдинг Простота (loose coupling) MVC Поддержка PHP4 Настройка параметров автозагрузки
Pic.19
CI::Ход работы приложения
Pic.20
CodeIgniter::модели Классы моделей хранятся в папке application/models/ Класс: Model_name Имя файла: application/models/user_model. php Загрузка: $this->load->model('Model_name'); …
Pic.21
CodeIgniter::Контроллеры application/config/routes. php – маршруты $route['default_controller'] = ‘XXX_controller'; class My_class extends Controller { …. } _remap ()
Pic.22
CodeIgniter::View class Privet extends Controller { …. } Загрузка: $this->load->view('name');
Pic.24
Symfony::использует Creole – абстракция с БД Propel ( PDO с 1. 2) Prado для i18n Spyc YAML парсинг Pake для командной строки(symfony 1. 0) Prototype, Script. aculo. us, Dynarch. com, TinyMCE
Pic.25
Symfony::возможности I18n, l10n, cache, валидация и т. п. Scaffolding Генерация кода AdminGenerator Независимые блоки (Loose coupling) Маршрутизация Хелперы Debug
Pic.26
Symfony::особенности Все классы начинаются с ‘sf’ (стандартные) class ##MODULE_NAME##Actions extends sfActions Много различного рода конфигурационных файлов.
Pic.28
Symfony::Известные проекты bookmarks. yahoo. com (20 млн пользователей) (сайт обмена играми) (сайт знакомств) (доска объявлений)
Pic.30
Zend Framework (ZF) Acl (роли и ресурсы) Auth (openId, Microsoft InfoCard) Cache / Loader Config / Console_Getopt (cli) Date ( i18n, l10N) / Db Filter, Validate (34) / Gdata (Zend Google Data Client) …
Pic.31
Новое в ZF 1. 6 RC1 Интеграция с Dojo Поддержка с SOAP Unit-тесты для контроллеров Поддержка индексных файлов Lucene 2. 3 Zend_Session – обработчик сохранения Paginator Zend_Config_Xml – поддержка …
Pic.32
ZF в цифрах Более 7 миллионов загрузок Более 500 разработчиков Более 1000 страниц в справочнике Более 500 примеров Более 60 проектов на SourceForge Более 30 проектов на Google Code Около 70 различных …
Pic.33
ZF::соглашения Class My_Class_Name должен находится в файле: My/Class/Name. php Cтиль кода во многом совпадает со стилями PEAR
Pic.34
ZF::Front Controller Pattern
Pic.36
ZF::Модели Zend_Db_Table PDO $db = Zend_Db::factory($cfgDb->type, $params); Zend_Db_Table::setDefaultAapter($db); Zend_Registry::set("DB", $db);
Pic.37
ZF::Контроллеры Zend_Controller_Action ErrorHandler plugin ViewRenderer action helper plugin preDispatch postDispatch Init
Pic.38
ZF::View interface Zend_View_Interface public function render($name); public function assign($name); Zend_View_Abstract basePath, filters, helpers, _setHelperClass (filter) …
Pic.39
ZF::Проекты – движок для e-commerce, 0. 5млн скачиваний, 30K users, 70 партнеров, 60+ языков, 150+ расширений (no java!) RightMedia – online реклама (NY) 4-5млрд показов в день, 100K запросов/с, 19K …
Pic.40
Производительность Почти Hello World test ;-)
Pic.41
Обычная страница без ORM Ыф Вид теста: ab –n 1000 –c XXX 512 ram, Intel Pentium 14oo MHz, Windows XP
Pic.43
Ыф 512Mb RAM 1. 8Ghz AMD Sempron под Ubuntu Gutsy (7. 10)
Pic.44
Symfony performance
Pic.45
Проект на Zend Framework
Pic.46
ZF::Пример проекта. Создаем сайт-сообщество. Несколько языков, несколько доменов, различные уровни доступа к ресурсам, маршрутизация, ORM.
Pic.47
Организация разработки Zend Studio for Eclipse (или просто phpEclipse) Cruise Control + phpUnderControl PHPUnit (Себастьян Бергман) Smarty SVN Ajax: xajax/jQuery/Dojo/Prototype/и т. д. Firebug + …
Pic.48
Zend_Config site. ru. xml site. eu. xml site. zone. xml <languages> <language>en</language> <language>ru</language> </languages>
Pic.49
bootstrap. php initView(); initRoutes(); initFrontend();
Pic.50
$view = new Socnet_View_Smarty(); $vRender = new Zend_Controller_Action_Helper_ViewRenderer($view); $vRender->setViewBasePathSpec( dirname(__FILE__). '/V/smarty/templates') …
Pic.51
Auth: $authAdapter = new Zend_Auth_Adapter_DbTable( $db, 'user', 'login', 'pass'); Zend_Registry::set("Auth", $authAdapter); Class myAdapter extends …
Pic.52
ACL $roleAdmin = new Zend_Acl_Role(Socnet_Auth_Acl::ADMIN); $this->addRole($roleAdmin, $roleMember); $this->addResource('forum/topic'); $this->deny(null, null); // Запрет всем для …
Pic.53
Маршрутизация $route = new Zend_Controller_Router_Route(ajax/:widgetName/:widgetAction', array( 'controller' => ‘ajax', 'action' => 'index', …
Pic.55
Unit-тестирование /tests Auth Controller Domain Model Members AllTests. php setUpEnvinronment. php
Pic.58
Модели /generated |- BaseModelName ParticularModel extends BaseModelName phpDoctrine . yml fixtures
Pic.59
if (extension_loaded('memcache')) { $frontendOptions = array( 'lifetime' => 7200, // cache lifetime of 2 hours 'automatic_serialization' => true ); $backendOptions …
Pic.60
Диспетчеризация extends Zend_Controller_Dispatcher_Standard $action = $this->getActionMethod($request); $doCall = !method_exists($controller, $action); $request->setDispatched(true); …
Pic.63
Полезные ссылки Cakephp. org (cake-php. ru) – сайт фреймворка Cakeforge. com – набор готовых проектов на cake codeigniter. com (code-igniter. ru) – сайт фреймворка symfony-project. org - сайт …
Pic.64
(архитектура Zend’a) (слои в архитектуре) (Zend Platform – aka Php Application Server – стоит почитать) (много интересных статей) (сравнение CodeIgniter с Cake) (матрица JS-фреймворков) (Symfony: 1st …
Pic.65
Есть вопросы? alex@antalika. com Icq: 286-41-77-45 Skype: horal777 Алексей Граков
Скачать презентацию
Если вам понравился сайт и размещенные на нем материалы, пожалуйста, не забывайте поделиться этой страничкой в социальных сетях и с друзьями! Спасибо!