2015-04-23 4 views
1

Так что это мой вопрос. У меня есть проект с более чем 700K PHP-линиями. Домашние рамки.Можно использовать PHQL в проекте без PhalconPHP?

Наш ORM работает, но я хочу попробовать PhalconPHP в проекте.

Мы используем Pimple as DI.

Возможно ли запустить только модель/PHQL в проекте без фалкона?

Если да, то как?

Thanks

ответ

1

Да, это возможно. Благодаря @calin в PhalconPHP forum я нашел ответ. В основном шаги являются следующие:

  1. Создать экземпляр Phalcon DI (или любой, который расширяет интерфейс DI)
  2. Установите modelsManager
  3. Установите modelsMetadata
  4. Установите дб
  5. Установите значение по умолчанию DI
  6. В модели, если необходимо, укажите 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(); 
Смежные вопросы