没有数据库的Zend

Mor*_*dur 3 php json zend-framework model

我用谷歌搜索了一个小时,但也许我的Google-Fu太弱了,我找不到解决方案.

我想创建一个通过JSON请求查询服务的应用程序(所有数据和后端/业务逻辑都存储在服务中).使用普通的PHP它很简单,因为我只是发出一个curl请求,json_decode结果并得到我需要的东西.这已经很好了.

请求可能如下所示:

http://service-host/userlist跟身体打电话:

{"logintoken": "123456-1234-5678-901234"}
Run Code Online (Sandbox Code Playgroud)

获得结果:

{
  "status": "Ok",
  "userlist":[
     {"name": "foo", "id": 1},
     {"name": "bar", "id": 2}
  ]
}
Run Code Online (Sandbox Code Playgroud)

现在我们希望将其纳入Zend Framework,因为它是一个业余爱好项目,我们想要了解Zend.问题是我能找到的所有信息都使用数据库.

有没有办法创建一个不使用数据库的Zend项目?我怎样才能编写代表对象而不是对象和对象关系的模型?

Gor*_*don 5

看看Zend_JsonZend_Http(或只是使用普通的cURL).

至于您的模型,数据源是数据库还是Web服务应该没有区别.只需要一个知道如何查询数据源的类.无论是像执行getUserById查询数据库或web服务并不重要,例如,

class UserGateway
{
    protected $_dataSource;
    public function __construct($dataSource)
    {
        $this->_dataSource = $dataSource;
    }
    public function getUserById($id)
    {
        // interact with datasource instance to retrieve a user by ID
    }
}
Run Code Online (Sandbox Code Playgroud)

然后$dataSource是类似的东西

class UserDb extends Zend_Db_Table {}
Run Code Online (Sandbox Code Playgroud)

或类似的东西

class UserWebService extends Zend_Http_Client {}
Run Code Online (Sandbox Code Playgroud)

换句话说,只需创建可传递给UserGateway的适当类,例如

$users = new UserGateway(new UserWebService);
$users->findById(123);
Run Code Online (Sandbox Code Playgroud)

确切地说,您找到用户的方式是网关和/或数据源类中的实现细节.

您可能也有兴趣在Zend_Rest_Client