- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在做一个使用 Phirehose 的项目收集和使用 Twitter Streaming API。 Phirehose 库旨在从命令行运行,最好作为守护进程或 cron 作业。
我创建了一个守护进程并将其放在库文件夹中。 Bootstrap.php 已更新为自动加载自定义库。因此,应用程序本身可以看到我的守护进程。
我的问题是如何将它与 Zend Framework 正确集成。我需要能够直接调用守护程序文件以从命令行或使用诸如 Upstart 之类的工具启动它。 ,但这样做时 Zend 应用程序不会加载,这意味着我无权访问我的模型。
我可以创建一个 Controller 来启动它,但我不想增加有人能够从 Web 界面控制守护程序的安全问题。我也可以编写 PDO 以手动连接到数据库,但出于扩展原因,我试图避免它。我希望所有数据库连接数据都驻留在 application.ini 中。
有没有办法在我的守护程序类中初始化我的 Zend Framework 应用程序以便我可以使用这些模型?
最佳答案
这个例子演示了我如何使用 Zend_Queue 执行后台任务。在这个特定示例中,我在后台使用 Zend_Queue 和 cronjob 生成发票,我的 Zend_Queue 已初始化并在 Bootstrap 中注册。
正在创建一个工作,My_Job 源是 here :
class My_Job_SendInvoice extends My_Job
{
protected $_invoiceId = null;
public function __construct(Zend_Queue $queue, array $options = null)
{
if (is_array($options)) {
$this->setOptions($options);
}
parent::__construct($queue);
}
public function job()
{
$filename = InvoiceTable::getInstance()
->generateInvoice($this->_invoiceId);
return is_file($filename);
}
}
在您的服务或模型中的某处注册作业:
$backgroundJob = new My_Job_SendInvoice(Zend_Registry::get('queue'), array(
'invoiceId' => $invoiceId
));
$backgroundJob->execute();
创建后台脚本:
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/..'));
// temp, environment should be specified prior execution
define('APPLICATION_ENV', 'development');
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),
)));
require_once 'Zend/Application.php';
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap();
/* @var $queue Zend_Queue */
$queue = Zend_Registry::get('queue');
$messages = $queue->receive(5);
foreach ($messages as $i => $message) {
/* @var $job My_Job */
$job = unserialize($message->body);
if ($job->job()) {
$queue->deleteMessage($message);
}
}
关于php - 如何在 Zend Framework 中使用守护进程访问我的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10954616/
嗨,我有一个包含此代码的 Zend 表单 $field = new Zend_Form_Element_Submit('submit'); $field->setAttrib('class', 'bt
我现在正在尝试使用 zend expressive 并研究如何处理数据库。我在看this ,但不清楚。我使用 composer 安装 zend-db,它提到在 dependencies.global.
我已经通过 Zend auth 创建了一个登录系统,这里是代码 // userAuthentication public function authAction(){ $reque
好的,所以我对 Zend 比较陌生。我已经创建了一个新的应用程序并开始构建基于 a guide 的身份验证系统.但是,服务器正在踢出一个内部服务器错误。 检查 PHP 错误日志后,我得到以下两个错误:
编辑:: 问题是由 Zend 路由引起的,请检查更新 我正在使用 xml 文件进行导航。 编辑::以下代码来自layout.phtml文件 $config = new Zend_Config_Xml(
我想将变量从 Controller 传递到表单。如何实现?谁能帮我解决这个问题。 谢谢。 最佳答案 只是一个活生生的例子: class Admin_Form_Product extends Admin
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我使用默认 Zend_Rest_Route 来生成 Rest 路由: 所以鉴于我只是把 resources.router.routes.rest.type = Zend_Rest_Route在 app
是否存在类似于 Zend Validator Identical 的 Zend Filter? 我应该过滤 input=='test' 的情况 $el->addFilter('Identical','
在/application 文件夹中创建了几个文件夹(例如表单和模型),然后开始向这些文件夹添加类之后,如何使这些类的代码自动完成在我的各种其他文件(例如我的文件)中可用IndexController
我正在尝试删除隐藏表单元素上的默认装饰器。默认情况下,隐藏元素显示如下: Hidden Element Label (if I had set one) 我不希望隐藏元素占用页面上的空间。我想删除所
我是框架新手,但我在安装 zend 1.x 版本等方面没有任何困难。但是ZF2真的搞不懂......任何资源告诉我使用 zend 工具创建项目,即 bin 目录中的 zf.bat 或 zf.sh,但与
我想使用装饰器将下面的 Zend_Form 格式化为表格,在第一列中放置描述并 Zend_Form_Element_Radio 的选项在第二列中和 在每一行中添加 2 个选择,您可以在稍后的 html
当您查看 在下面的标记中,您会看到有一个带有 id 地址标签的 dt 和以下 dd,我想删除这些但保留 字段集。 要添加显示组,我在其中使用了这个 $this->addDisplayGroup(arr
我已经阅读了所有关于路由和 Zend 文档的帖子,但我仍然无法解决这个问题。 我有一个包含两个模块的多语言应用程序:default 和 admin。语言选择工作正常(在 Controller rout
/* Form Elements & Other Definitions Here ... */ $this->setAction("auth") ->setMethod("post")
我正在按照官方教程在 Zend 服务器上部署示例 Zend 应用程序。无论我部署什么,我唯一可以访问的是 hello world 页面(Hello world 打招呼)。 如何访问真实应用程序? ho
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 3年前关闭。 Improve thi
在 Zend 中使用命名空间的最佳实践是什么? 如何管理存储库、服务等的命名空间? 我在 Zend 文档 here 中找到了一个通用的目录结构,但它没有描述在哪里放置存储库和其他服务! 请将其视为 M
我有问题,以下 Zend 表单会引发错误。 问题是"file"元素和使用 setElementDecorators。 class Products_AddForm extends Zend_F
我是一名优秀的程序员,十分优秀!