Search code examples
phpcakephpamazon-ec2ratchet

Cannot load cakephp model


I have cakephp 2 and ratchet framework for websockets. All this works on aws ec2. I create some php class and try to use cakephp model like this:

<?php

namespace some\name\space;

use App;
use CakeModel;

App::uses('CakeModel', 'Model');

use Ratchet\ConnectionInterface;

require_once 'path/to/autoload.php';
require_once 'path/to/Cake/Core/App.php';

class SomeClassThatUseRatchetThings {

    public function foo(ConnectionInterface $from) {
        $cakeModel = new CakeModel();
        ...

I start the server (wsserver) and all works fine until i call foo function. When i call it, i have the fallowing error:

Class 'CakeModel' not found in /path/to/SomeClassThatUseRatchetThings.php on line 20

Why this happen? What i missed? Thanks.


Solution

  • Very strange behavior. I added require_once bootstrap.php like this:

    require_once ROOT. DS . APP_DIR . DS . 'vendor' . DS . 'autoload.php';
    require_once ROOT . DS . 'lib' . DS . 'Cake' . DS . 'Core' . DS . 'App.php';
    require_once ROOT . DS . 'lib' . DS . 'Cake' . DS . 'bootstrap.php';
    

    and this error gone away, but there was another one:

    cannot redeclare class App.php

    I tried to move the second require_once to another file and my code gives me what i want. No errors + ability to use cake models.