可以在非 PhalconPHP 项目中使用 PHQL 吗?
Is possible to use PHQL in a non PhalconPHP project?
所以这是我的问题。我有一个超过 700K PHP 行的遗留项目。自制框架。
我们的 ORM 可以工作,但我想在项目中尝试 PhalconPHP。
我们正在使用 Pimple 作为 DI。
是否可以在非 Phalcon 项目中 运行 仅 Model/PHQL?
如果是,怎么做?
谢谢
是的,这是可能的。感谢 PhalconPHP forum 中的@calin 我找到了答案。基本上步骤如下:
- 创建 Phalcon DI 的实例(或任何扩展 DI 接口的实例)
- 设置模型管理器
- 设置模型元数据
- 设置分贝
- 设置默认DI
- 在模型中,根据需要定义 getSource。
示例:
<?php
$di = new \Phalcon\DI();
$di->set('modelsManager', function () {
return new \Phalcon\Mvc\Model\Manager();
});
$di->set('modelsMetadata', function () {
return new \Phalcon\Mvc\Model\MetaData\Memory();
});
$di->set('db', function () {
return new \Phalcon\Db\Adapter\Pdo\Mysql(array(
'adapter' => 'Mysql',
'host' => 'xxx.dev',
'username' => 'xxxx',
'password' => 'yyy',
'dbname' => 'zzz',
));
});
\Phalcon\DI::setDefault($di);
在您需要调用 Models/PHQL 之前,必须在某些部分调用它。
定义一个普通模型,并调用模型。太棒了。
模型示例:
<?php
namespace Vendor\App\Mvc\Model;
use \Phalcon\Mvc\Model;
class UserModel extends Model
{
public function getSource()
{
return "users";
}
}
在代码的某些部分,在调用 Phalcon DI 之后:
<?php
echo \Vendor\App\Mvc\Model\UserModel::find()->count();
所以这是我的问题。我有一个超过 700K PHP 行的遗留项目。自制框架。
我们的 ORM 可以工作,但我想在项目中尝试 PhalconPHP。
我们正在使用 Pimple 作为 DI。
是否可以在非 Phalcon 项目中 运行 仅 Model/PHQL?
如果是,怎么做?
谢谢
是的,这是可能的。感谢 PhalconPHP forum 中的@calin 我找到了答案。基本上步骤如下:
- 创建 Phalcon DI 的实例(或任何扩展 DI 接口的实例)
- 设置模型管理器
- 设置模型元数据
- 设置分贝
- 设置默认DI
- 在模型中,根据需要定义 getSource。
示例:
<?php
$di = new \Phalcon\DI();
$di->set('modelsManager', function () {
return new \Phalcon\Mvc\Model\Manager();
});
$di->set('modelsMetadata', function () {
return new \Phalcon\Mvc\Model\MetaData\Memory();
});
$di->set('db', function () {
return new \Phalcon\Db\Adapter\Pdo\Mysql(array(
'adapter' => 'Mysql',
'host' => 'xxx.dev',
'username' => 'xxxx',
'password' => 'yyy',
'dbname' => 'zzz',
));
});
\Phalcon\DI::setDefault($di);
在您需要调用 Models/PHQL 之前,必须在某些部分调用它。
定义一个普通模型,并调用模型。太棒了。
模型示例:
<?php
namespace Vendor\App\Mvc\Model;
use \Phalcon\Mvc\Model;
class UserModel extends Model
{
public function getSource()
{
return "users";
}
}
在代码的某些部分,在调用 Phalcon DI 之后:
<?php
echo \Vendor\App\Mvc\Model\UserModel::find()->count();