Reproducible Tests


    1. <?php
    2. use Phalcon\Di\FactoryDefault;
    3. use Phalcon\Db\Adapter\Pdo\Mysql;
    4. $container = new FactoryDefault();
    5. $container->setShared(
    6. 'db',
    7. function () {
    8. return new Mysql(
    9. [
    10. 'host' => '127.0.0.1',
    11. 'username' => 'root',
    12. 'password' => '',
    13. 'dbname' => 'test',
    14. 'charset' => 'utf8',
    15. ]
    16. );
    17. }
    18. );
    19. $result = $container['db']->query('SELECT * FROM customers');

    Include models and controllers as part of the test:

    1. <?php
    2. use Phalcon\Di\FactoryDefault;
    3. use Phalcon\Mvc\Application;
    4. use Phalcon\Mvc\Controller;
    5. use Phalcon\Mvc\Model;
    6. $container = new FactoryDefault();
    7. // other services
    8. $application->setDI($container);
    9. class IndexController extends Controller
    10. {
    11. public function indexAction() {
    12. /* your content here */
    13. }
    14. }
    15. class Users extends Model
    16. {
    17. }
    18. $response = $application->handle(
    19. $_SERVER["REQUEST_URI"]
    20. );
    21. echo $response->getContent();
    1. <?php
    2. use Phalcon\Di;
    3. use Phalcon\Db\Adapter\Pdo\Mysql as Connection;
    4. use Phalcon\Events\Manager as EventsManager;
    5. use Phalcon\Mvc\Model;
    6. use Phalcon\Mvc\Model\Manager as ModelsManager;
    7. use Phalcon\Mvc\Model\Metadata\Memory as ModelsMetaData;
    8. $eventsManager = new EventsManager();
    9. $container = new Di();
    10. $connection = new Connection(
    11. [
    12. 'host' => 'localhost',
    13. 'username' => 'root',
    14. 'password' => '',
    15. 'dbname' => 'test',
    16. ]
    17. );
    18. $eventsManager->attach(
    19. 'db:beforeQuery',
    20. function ($event, $connection) {
    21. echo $connection->getSqlStatement(), '<br>' . PHP_EOL;
    22. }
    23. );
    24. $container['db'] = $connection;
    25. $container['modelsManager'] = new ModelsManager();
    26. $container['modelsMetadata'] = new ModelsMetadata();
    27. if (true !== $connection->tableExists('user', 'test')) {
    28. $connection->execute(
    29. 'CREATE TABLE user (id integer primary key auto_increment, email varchar(120) not null)'
    30. );
    31. }
    32. class User extends Model
    33. {
    34. public $id;
    35. public $email;
    36. public static function createNewUserReturnId()
    37. {
    38. $newUser = new User();
    39. $newUser->email = 'test';
    40. if (false === $newUser->save()) {
    41. return false;
    42. }
    43. return $newUser->id;
    44. }
    45. }
    46. echo User::createNewUserReturnId();