2016-06-01 12:43 阅读 29


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:


namespace some

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.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • 已采纳
    doupu3211 doupu3211 2016-06-01 13:24

    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.

    点赞 评论 复制链接分享