Intereting Posts
как я могу решить "Устаревшие: функция eregi () устарела" ошибка Как удалить строку mysql после прохода времени? Невозможно изменить информацию заголовка phpseclib – невозможно подключиться к коммутатору cisco Как сохранить вложение изображений из электронной почты с помощью IMAP и PHP? Разбирайте XML-файл с URL-адреса, используя php Управление документом Microsoft Word Office 2007. .docx с PHP Проблема с сортировкой PHP с помощью simpleXML Yii – Пути к работе включают в себя другое представление в этом представлении переместить все файлы в папку в другую? Проверьте, успешна ли update_batch () в CodeIgniter jquery autocomplete с php-файлом, который запрашивает базу данных mysql Ссылка на текущую ссылку с разбивкой по страницам не выделяется Как создать первый PHP-расширение в C на Linux GCC? Предупреждение: mysqli_connect (): (HY000 / 1045): доступ запрещен для пользователя «root» @ «localhost» (с использованием пароля: НЕТ)

Проект Zend Framework без использования Zend_Application

Я даже читал на многих сайтах, что для повышения производительности приложений Zend Framework не использовать Zend_Application в bootstrap, но не удалось найти сайт, на котором это продемонстрировано.

Вы, ребята, знаете о месте, где описан этот метод, и могли бы предоставить мне некоторые образцы кода?

благодаря

Related of "Проект Zend Framework без использования Zend_Application"

Я просто бросил это вместе:

https://gist.github.com/2822456

Воспроизведено ниже для завершения. Не проверено, просто некоторые идеи о том, как я думаю, что это вообще (!) Может сработать. Теперь, когда я немного прошел через него, я больше ценю Zend_Application, его классы начальной загрузки и его настраиваемые / повторно используемые ресурсы приложений. 😉

// Do your PHP settings like timezone, error reporting // .. // Define path to application directory defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/_zf/application')); // Define application environment defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production')); // Ensure library/ is on include_path set_include_path(implode(PATH_SEPARATOR, array( realpath(APPLICATION_PATH . '/../library'), get_include_path(), ))); // Get autoloading in place require_once 'Zend/Loader/Autoloader.php'; $autoloader = Zend_Loader_Autoloader::getInstance(); // Any additional configs to autoloader, like custom autoloaders // Read config $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', APPLICATION_ENV); // bootstrap resources manually: // * create db adapter // * create resource autoloaders with the mappings you need // * etc // Get the singleton front controller $front = Zend_Controller_Front::getInstance(); // Set controller directory $front->setControllerDirectory(APPLICATION_PATH . '/controllers'); // Or set module directory $front->setModuleDirectory(APPLICATION_PATH . '/modules'); // Other front config, like throw exceptions, etc. // ... // // Create a router $router = new Zend_Controller_Router_Rewrite(); // Add routes to the router $router->addRoute('myRoute', new Zend_Controller_Router_Route(array( // your routing params ))); // More routes... // Alternatively, the routes can all be in an xml or ini file and you can add // them all at once. // Tell front to use our configured router $front->setRouter($router); // Add an plugins to your $front $front->registerPlugin(new My_Plugin()); // other plugins... // Dispatch the request $front->dispatch(); 

Возможно, есть и другие средства View / ViewRenderer. Но, как отмечалось в других местах, ViewRenderer несет нетривиальный удар производительности. Если проблема связана с производительностью, вам нужно отключить ViewRenderer и заставить ваши контроллеры действий вызывать собственный рендеринг с помощью $this->view->render('my/view-script.phtml')

Когда вы вызываете $front->dispatch() , объекты $request и $response будут созданы автоматически. Если вы хотите сделать что-то конкретное для них при загрузке – например, установить кодировку в заголовке Content-Type ответа, тогда вы можете сами создать свой объект запроса / ответа, сделать то, что вы хотите, а затем прикрепить его к передней панели с $front->setResponse($response); То же самое для объекта запроса.

Хотя я вижу, что в моем примере используются Zend_Loader_Autoloader и Zend_config_Ini которые примечания Padraic понесут удары производительности. Следующим шагом будет обращение к ним с помощью массивов для конфигурации, удаление вызовов require_once из фреймворка, регистрация другого автозагрузчика и т. Д., Упражнение, оставленное читателю … 😉

Привет, я не согласен с тем, что не использовал Zend_Application в bootstrap, и нет, я еще не видел конкретного примера этой техники.

Лично я не вижу преимущества в том, что вы не используете Zend_app для самонастройки вашего приложения, предполагая, что: a) вы делаете «путь Zend» и b) ваш проект либо достаточно велик, либо просто требует использования рамки Zend (или любой из них дело).

В то время как Zend_App отлично подходит для создания последовательных комплексных бутстрапов в стандартизованной структуре, он не приходит без значительного повышения производительности для базовой производительности. Более прямой бутстрап (типичный для ZF до тех пор, пока Zend_App не прибыл) намного быстрее и может быть также выполнен без файлов конфигурации.

Взято из ссылки Pádraic Brady.

Для меня это не имеет смысла, он в основном просто сказал, что Zend_App отлично подходит для сложных бутстрапов, но добавляет удар производительности. Но разве это не предпосылка для ЛЮБОГО элемента структуры / рамки? Я знаю, что Падрейк – очень умный парень, и я уверен, что он рассуждает, но я тоже хотел бы увидеть примеры / доказательства этого предложения.

Возможно, отвечая на ваш вопрос, вы можете сравнить базовое приложение с использованием последней основы Zend, а затем использовать фреймворк Zend с <1.10 с использованием старого метода не Zend_App, но я бы сказал, хотя, очевидно, не идеальный Zend_App явно ускоряет получение большинства приложений и работает, так ли это стоит «хита производительности», я догадываюсь до разработчика (ов).

Вот ссылка, которая несколько вникает в то, что вам может быть, но ссылается на модульный подход (тем не менее интересный, тем не менее):

http://www.osebboy.com/blog/zend-framework-modules/