Comments 38
Набор тегов рвет мозг.
А по поводу релиза для меня наиболее приятен CodeGenerator. Как раз есть идея, как его применить.
А по поводу релиза для меня наиболее приятен CodeGenerator. Как раз есть идея, как его применить.
Самое вкусное, это Zend_Application для замены велосипедов и плясок с бубнами, а так же вынесения в отдельный компонент Zend_CodeGenerator, который дает возможность скажим автоматизированного создания контроллеров и модулей через веб-интерфейс.
Согласен. Думаю Zend_Application наведет порядок в пользовательских бутстрап файлах. А то куда ни посмотри, каждый на свой лад пишет. Кто в плагине, кто в index.php, кто класс создает (как я)
Я расширял Zend_Controller_Plugin_XXX.
Кстати, в моем велосипеде похожий подход (один бутстрап — один класс), только еще накручен паттерн 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_Tools процес пайдёт значительно быстрее)
Буквально вчера из-за отсутствия компонента вроде Zend_Tools хотел мигрировать на Symfony, но судя по всему делать этого не придется.
а я мигрировал. тоже как раз пару дней пропарился и ушел. теперь все, попишу в симфони.
Создание маааленького корпоративного сайта, с парой форм обратной связи, лентой новостей и набором статических страниц с административной частью развертывается быстрее чем на ZF?
Было бы здорово сделать какой-нибудь сравнительный анализ…
Было бы здорово сделать какой-нибудь сравнительный анализ…
ну… это некорректный вопрос. Для меня — нет, так как я одинаково мало работал с фреймворками. Они оба довольно навороченные и быстрая работа с ними нарабатывается не сразу. Это не руби на рельсах, где сел и поехал. Симфони очень близка к рельсам, так что работать с ней довольно легко. Зенд Фреймворк более похож на набор разрозненных компонент, как взяли слепили вместе, а как с ними работать каждый выбирает сам. Там нет четких стандартов кодирования и соглашений.
Откройте мануал Appendix B. Набор разрозненных компанентов дает определенную гибкость. Вы можете использовать изолированно части ZF в своих проектах (написанные не на ZF).
Сел и поехал, возможно да RoR, sympfony это так. Но сел и поехал в нужном направлении со скоростью 160 км/ч нужно время и навыки по работе с любым framework.
Очередной релиз жду с любопытством. Хотя для решения сегодняшних задач к пляскам с бубном не прибегал.
Сел и поехал, возможно да RoR, sympfony это так. Но сел и поехал в нужном направлении со скоростью 160 км/ч нужно время и навыки по работе с любым framework.
Очередной релиз жду с любопытством. Хотя для решения сегодняшних задач к пляскам с бубном не прибегал.
Конечно, понятно что это гибкость дает. Эт как С++ и ПХП, наверное. Каждой задаче нужно осознанно выбирать инструмент. У меня просто сейчас маленькая задачка стоит и мне отлично хватит Симфони.
Очень приятная новость. Спасибо за перевод. Только реализовал подобную функциональность для бутстрапинга и вот — нате вам. Радует что мысли совпадают с разработчиками ZF.
А как решал проблему с кодировками БД? У меня в плагине в dispatchLoopStartup было что-то вроде:
Но то что этот запрос посылается каждый раз при инициализации цикла диспетчеризации не очень радует, вроде была возможность использовать PDO::MYSQL_ATTR_INIT_COMMAND но в PHP 5.3+ это сделать нельзя.
$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;')
));
$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»
resources.db.params.driver_options.1002 = «SET NAMES UTF8»
Отличные направления развития!
Вполне современно и в духе времени!
Спасибо за пост!
Вполне современно и в духе времени!
Спасибо за пост!
плохо что до zend_opendId так и не дошло, такой нужный компонент и так запущен.
А еще интересно, будет ли работать мой проект под 1,7 на новом фреймворке и если нет как трудно будет переехать.
А еще интересно, будет ли работать мой проект под 1,7 на новом фреймворке и если нет как трудно будет переехать.
Даже, где то на zend.com я видел обещания от разработчиков, что до версии 2.0, будет полная обратная совместимость.
У кого есть желание, может поискать пруф линк, мне например достаточно работоспособных обновлений начиная с 1.5
У кого есть желание, может поискать пруф линк, мне например достаточно работоспособных обновлений начиная с 1.5
Насчет Zend_Tool результат пока только такой (WinXP + Zend Server):
C:\>zf version
An error has occured:
Action 'version' is not a valid action.
Удалось добиться от Zend_Tool некоторых результатов (двойной тег php — его работа):
index.php
IndexController.php
application.ini
index.php
- <?php
-
- <?php
- // Define path to application directory
- defined('APPLICATION_PATH')
- || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
-
- // Define application environment
- defined('APPLICATION_ENV')
- || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
-
- /** Zend_Application */
- require_once 'Zend/Application.php';
-
- // Create application, bootstrap, and run
- $application = new Zend_Application(
- APPLICATION_ENV,
- APPLICATION_PATH . '/configs/application.ini'
- );
- $application->bootstrap();
- $application->run();
* This source code was highlighted with Source Code Highlighter.
IndexController.php
- <?php
- <?php
-
- require_once 'Zend/Controller/Action.php';
-
- class IndexController extends Zend_Controller_Action
- {
- public function init()
- {
- /* Initialize action controller here */
- }
-
- public function indexAction()
- {
- // action body
- }
- }
* 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.
Уже отрепортовали, вижу. Молодец. :-)
Я ненадолго запоролся на этом, пока не посмотрел созданные исходники.
Интересно, почему это было пропущенно.
Я ненадолго запоролся на этом, пока не посмотрел созданные исходники.
Интересно, почему это было пропущенно.
Вот так всегда…
Мы писали свой Application (даже назвали также и цель таже) и вот тебе.
Ну да ладно, будем изучать.
Спасибо за новость.
Мы писали свой Application (даже назвали также и цель таже) и вот тебе.
Ну да ладно, будем изучать.
Спасибо за новость.
Уже внедряю. Приятно, что переписывать много не приходится, самодельные «велосипеды» довольно легко перекладываются в новые компоненты, и вообще это уже не первый раз, когда разработчики ZF следуют ожиданиям общественности.
Sign up to leave a comment.
1.8 Preview Release