Pull to refresh

Comments 38

Набор тегов рвет мозг.

А по поводу релиза для меня наиболее приятен CodeGenerator. Как раз есть идея, как его применить.
Это я погорячился… но думаю нужно будет их вернуть через пару дней.
Самое вкусное, это Zend_Application для замены велосипедов и плясок с бубнами, а так же вынесения в отдельный компонент Zend_CodeGenerator, который дает возможность скажим автоматизированного создания контроллеров и модулей через веб-интерфейс.
Согласен. Думаю Zend_Application наведет порядок в пользовательских бутстрап файлах. А то куда ни посмотри, каждый на свой лад пишет. Кто в плагине, кто в index.php, кто класс создает (как я)
Кстати, в моем велосипеде похожий подход (один бутстрап — один класс), только еще накручен паттерн Strategy и нет ресурсов. Очень приятно, что они двинулись в том же направлении, к тому же над моим бубном можно успешно произвести рефайторинг с использованием их кода.
Посмотри пример использования Zend_Tool по ссылке в конце статьи, этот фунционал уже реализован с помощью Zend_Tool_Project.

Zend_Tool_Project also comes with the ability to be able to create actions (within existing Action Controllers) and create the corresponding view scripts as well.
Знаю, вот я пишу, что «вынесения в отдельный компонент Zend_CodeGenerator»
спасибо за новость, сейчас, как раз, мучаю фреймворк, с Zend_Tools процес пайдёт значительно быстрее)
Буквально вчера из-за отсутствия компонента вроде Zend_Tools хотел мигрировать на Symfony, но судя по всему делать этого не придется.
а я мигрировал. тоже как раз пару дней пропарился и ушел. теперь все, попишу в симфони.
Создание маааленького корпоративного сайта, с парой форм обратной связи, лентой новостей и набором статических страниц с административной частью развертывается быстрее чем на ZF?

Было бы здорово сделать какой-нибудь сравнительный анализ…
ну… это некорректный вопрос. Для меня — нет, так как я одинаково мало работал с фреймворками. Они оба довольно навороченные и быстрая работа с ними нарабатывается не сразу. Это не руби на рельсах, где сел и поехал. Симфони очень близка к рельсам, так что работать с ней довольно легко. Зенд Фреймворк более похож на набор разрозненных компонент, как взяли слепили вместе, а как с ними работать каждый выбирает сам. Там нет четких стандартов кодирования и соглашений.
Откройте мануал Appendix B. Набор разрозненных компанентов дает определенную гибкость. Вы можете использовать изолированно части ZF в своих проектах (написанные не на ZF).
Сел и поехал, возможно да RoR, sympfony это так. Но сел и поехал в нужном направлении со скоростью 160 км/ч нужно время и навыки по работе с любым framework.
Очередной релиз жду с любопытством. Хотя для решения сегодняшних задач к пляскам с бубном не прибегал.
Конечно, понятно что это гибкость дает. Эт как С++ и ПХП, наверное. Каждой задаче нужно осознанно выбирать инструмент. У меня просто сейчас маленькая задачка стоит и мне отлично хватит Симфони.
Для ма-а-аленьких задачек рекомендую взглянуть на YII фреймворк, он во многом похож на Симфони, правда сильно проще, но при этом ну очень шустрый. Я его даже стал вместе с Симфой использовать.
Очень приятная новость. Спасибо за перевод. Только реализовал подобную функциональность для бутстрапинга и вот — нате вам. Радует что мысли совпадают с разработчиками ZF.
А как решал проблему с кодировками БД? У меня в плагине в dispatchLoopStartup было что-то вроде:

$db = Zend_Db::factory($config->db->adapter, $config->db->params->toArray());
$db->query('SET NAMES utf8');


Но то что этот запрос посылается каждый раз при инициализации цикла диспетчеризации не очень радует, вроде была возможность использовать PDO::MYSQL_ATTR_INIT_COMMAND но в PHP 5.3+ это сделать нельзя.
Я для этого унаследовал класс от Zend_Db_Adapter_Mysqli, и в нем в query() делаю все нужные предварительные запросы SET, параллельно запоминая этот факт:

public function query($sql, $bind = array(),$pre=false)
{
if(!$this->preExecute && !$pre)
{
$this->query('SET NAMES utf8',array(),true);
$this->query("SET time_zone='+04:00'",array(),true);
$this->preExecute = true;
}
return parent::query($sql,$bind);
}
Делаю так:
$db = Zend_Db::factory($this->_config->db->adapter, array(
'host' => $this->_config->db->host,
'username' => $this->_config->db->username,
'password' => $this->_config->db->password,
'dbname' => $this->_config->db->name,
'driver_options' => array(MYSQLI_INIT_COMMAND => 'SET NAMES UTF8;')
));
Если PDO_MySQL, то
resources.db.params.driver_options.1002 = «SET NAMES UTF8»
Отличные направления развития!
Вполне современно и в духе времени!
Спасибо за пост!
плохо что до zend_opendId так и не дошло, такой нужный компонент и так запущен.

А еще интересно, будет ли работать мой проект под 1,7 на новом фреймворке и если нет как трудно будет переехать.
Я пока не сталкивался с проблемами при обновлениях начиная с 1.5, просто менял extrnals в SVN и делал update, может конфликты и возникали, но незначительные так как я о них не помню.
это радует, я перезжал один раз, но там были незначительные изменения, только фиксы.
Даже, где то на zend.com я видел обещания от разработчиков, что до версии 2.0, будет полная обратная совместимость.
У кого есть желание, может поискать пруф линк, мне например достаточно работоспособных обновлений начиная с 1.5
Насчет Zend_Tool результат пока только такой (WinXP + Zend Server):
C:\>zf version
An error has occured:
Action 'version' is not a valid action.
При работе с Zend_Tool из командной строки под WIN XP возникли странные проблемы с вводимыми строками.
Удалось добиться от Zend_Tool некоторых результатов (двойной тег php — его работа):

index.php
  1. <?php
  2.  
  3. <?php
  4. // Define path to application directory
  5. defined('APPLICATION_PATH')
  6.     || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
  7.  
  8. // Define application environment
  9. defined('APPLICATION_ENV')
  10.     || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
  11.  
  12. /** Zend_Application */
  13. require_once 'Zend/Application.php'
  14.  
  15. // Create application, bootstrap, and run
  16. $application = new Zend_Application(
  17.     APPLICATION_ENV,
  18.     APPLICATION_PATH . '/configs/application.ini'
  19. );
  20. $application->bootstrap();
  21. $application->run();
* This source code was highlighted with Source Code Highlighter.

IndexController.php
  1. <?php
  2. <?php
  3.  
  4. require_once 'Zend/Controller/Action.php';
  5.  
  6. class IndexController extends Zend_Controller_Action
  7. {
  8.     public function init()
  9.     {
  10.                 /* Initialize action controller here */
  11.     }
  12.  
  13.     public function indexAction()
  14.     {
  15.                 // action body
  16.     }
  17. }
* This source code was highlighted with Source Code Highlighter.

application.ini
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

[staging : production]

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1


* This source code was highlighted with Source Code Highlighter.
Уже отрепортовали, вижу. Молодец. :-)

Я ненадолго запоролся на этом, пока не посмотрел созданные исходники.

Интересно, почему это было пропущенно.
Может какие-то платформенные особенности…

У меня еще не создался проект с помощью команды. Вводимая строка сдвигалась на 1 символ влево, и из-за этого путь передающийся mkdir был некорректный, пришлось прописать путь в исходнике для создания проекта.
Вот так всегда…
Мы писали свой Application (даже назвали также и цель таже) и вот тебе.
Ну да ладно, будем изучать.
Спасибо за новость.
Уже внедряю. Приятно, что переписывать много не приходится, самодельные «велосипеды» довольно легко перекладываются в новые компоненты, и вообще это уже не первый раз, когда разработчики ZF следуют ожиданиям общественности.
Sign up to leave a comment.

Articles