Да, это возможно. Благодаря @calin в PhalconPHP forum я нашел ответ. В основном шаги являются следующие:
- Создать экземпляр Phalcon DI (или любой, который расширяет интерфейс DI)
- Установите modelsManager
- Установите modelsMetadata
- Установите дб
- Установите значение по умолчанию 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);
Это должно быть названо в некоторой части, прежде чем потребуется вызов к моделям/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();