基本上我想要在这里做的是将数据获取到 Node 服务器js中,这些数据是从写入Zend模型的函数返回的数据。
我的node js服务器代码如下:
var socket = require( 'socket.io' );
var express = require( 'express' );
var http = require( 'http' );
var execPhp = require('exec-php');
var app = express();
var server = http.createServer( app );
var io = socket.listen( server );
execPhp('../application/modules/front/models/Dbtable/Postcontent.php',
function(error, php, outprint){
php.fetchEntryAll(function(error, result){
io.sockets.emit('showfeeds', result);
});
});
server.listen( 7000 );
所以当我尝试执行上面的代码时,它给出了如下错误:
错误:命令失败:PHP fatal error :在第 3 行的/Data/www/XXX/application/modules/front/models/Dbtable/Postcontent.php 中找不到类“Zend_Db_Table_Abstract”
当我使用核心 PHP 而不是 Zend 时,相同的代码可以工作。
所以我相信我们不能在 exec-php 中使用 OOP 的东西。
有什么解决办法吗?
exec-php 的引用链接: https://www.npmjs.com/package/exec-php
最佳答案
您遇到的问题与 OOP 无关,而是与自动加载对象类文件有关。
虽然您为第一个文件定义了路径,但以下部分或全部文件没有为其依赖项定义路径 - 就像抽象类一样。
ZF1 文件实际上应该有 require 语句并且无需自动加载器即可工作。您所缺少和需要的内容在您自己的模块文件中是相同的。
在您的 application/modules/front/models/Dbtable/Postcontent.php
文件中,您必须提示抽象类的路径作为 require_once
声明。
关于node.js - 如何在zend等MVC框架中使用exec-php(node js)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31118276/