Как сам ZF noob, я думаю, что понимаю кое-что из того, что ОП пытается выяснить. Итак, я просто объясню кое-что из того, что я понимаю, в надежде, что это будет полезно либо для ФП (или, скорее, для будущего читателя), поскольку первоначальный вопрос очень старый, и я думаю, что ФП теперь ZF гуру).
Я понимаю, что ZF утверждает, что он в значительной степени "используется по желанию", поэтому вам не нужно покупать целую структуру, такую как Zend_Application, класс Zend_Bootstrap, весь подход MVC и т. Д.
Кроме того, я понимаю соглашения для именования классов и расположения файлов, которые обеспечивают легкую автозагрузку. Пример: class App_Model_User
находится в папке App/Model/User.php
Я думаю, что может сбить с толку то, что в контексте сценария, где вы еще не сделали
- сделал магию .htaccess, которая отправляет весь запрос на
public/index.php
- установите
APPLICATION_PATH
и включите пути в public/index.php
- создал объект
Application
или Bootstrap
, связанный с файлом конфигурации
может быть немного неясно, как наилучшим образом воспользоваться большей частью совершенства ZF, которое мы получаем в этом контексте и хотим в другом контексте.
Полагаю, мой ответ на исходный вопрос состоял в том, что обычная последовательность точек входа
http запрос -> .htaccess -> index.php -> config
настраивает большую часть нашего окружения для нас, нам нужно будет продублировать часть этого для другого пути входа.
Итак, для вашего сценария моим первым инстинктом было бы создание общего включаемого файла, который отражает большую часть того, что происходит в index.php - задает пути включения, APPLICATION_PATH, создает экземпляры и вызывает загрузчик, а затем выполняет ваш сценарий -специфическая обработка.
Еще лучше, возможно, было бы желательно создать единую точку входа для всех ваших сценариев, как мы делаем в контексте http / web. Расширьте Zend_Application для собственных сценариев, чтобы $application->run();
больше не запускал обработку диспетчеризации маршрутизатора-контроллера MVC, а выполнял ваши собственные задачи. Таким образом, эта единственная точка входа скрипта будет выглядеть почти идентично веб-точке входа, с той лишь разницей, какой экземпляр объекта приложения создается. Затем передайте в сценарий имя нужного класса приложения в качестве параметра командной строки.
Но здесь я признаюсь, что был менее уверен в себе и просто выбрасывал идеи.
Надеюсь, все это кому-нибудь поможет. Это действительно помогло мне записать все это. Спасибо и ура!
Обновление 2009-09-29: Только что наткнулся на эту статью: Использование Zend Framework из командной строки
Обновление 2009-11-20: И еще одна статья: Задания Cron в Zend Framework | GS Design
Обновление 2010-02-25: Простые сценарии командной строки с Zend Application - Дэвид Каунт