2012-04-13 21 views
0

私のLinuxマシンでKohana 2.3.4でクラスが見つかりませんでしたが、すべてWindows上で正常に動作します。Kohana 2.3.4 + LINUX - ErrorException [致命的なエラー]:クラスが見つかりません

私のWindowsマシン:

  • PHPバージョン5.2.9
  • Windows 7のアルティメットエディション

私のLinuxマシン:

  • PHPバージョン5.3.2-1ubuntu4。 15
  • Ubuntu 10.04
  • このエラーを取得

イム:

//controllers/user.php 
    class User_Core{ 

     ... 

     $fbuser = calafate_orm::factory('fbuser')->where('fbid', $user['id'])->find(); 

     ... 
    } 

同じコードは、Windows上で正常に動作:

Fatal error: Class 'calafate_orm' not found in /home/jay/workspace/Facebook_App/application/helpers/user.php on line 514 

これは私がモデルを呼び出す方法です。

calafate_ormは、このようなものです:

//libraries/calafate_orm.php 
    <?php 
abstract class calafate_orm_core extends ORM{ 
    protected $db = 'calafate'; 
    protected $table_names_plural = false; 

    public function save(){ 
     $field   = ($this->id)?'modification_date':'creation_date'; 
     $this->$field = date('Y-m-d H:i:s'); 
     parent::save(); 
    } 

} 
?> 

私のファイル名のすべて小文字にしています。

何が起こっている可能性がありますか?事前に

おかげ

クラス名とファイル名は大文字の文字で始まるFIXED

ライブラリ。

はCalafate_ormにライブラリを改称し、このようなクラスの宣言に編集:

<?php 
abstract class Calafate_orm_core extends ORM{ 
... 
}?> 

そして、それはそれだし。

正しい方向に私を向けるhakreに感謝します。

+0

kohanaオートローダーの仕様で、ファイル名を正しく記述する必要があるかどうかを確認してください(ケース!)。 Windowsはすべてを食べ、Linuxは大文字と小文字を区別します。 – hakre

+0

ありがとう、私はPHP 5.3を再インストールしました。いくつかの拡張子を持つ10とこれはもう起こっていない、今私は "致命的なエラー:未定義関数glob()"を呼び出すが、私はそれについての新しい質問を作成すると思います。 – Jay

+0

あなたは自分の好意を持って、システムアドレストレーターがあなたの設定を見直して安全性がすべてスムーズになると考えてください。 'glob()'はあなたが問題を求めているような既存の音ではありません。 – hakre

答えて

0

Facebook_ModelでFacebookの代わりにModelを拡張する必要があります。

0

hakreはコメントで言ったように、それがhere述べていますように、「ライブラリのクラス名とファイル名を大文字の文字で始まる」

私はCで起動するファイルやクラスを変更し、それが問題を修正しました。

私はプロジェクトをUbuntuに移したとき、私はすべてのファイル名を小文字に変更しました。ライブラリが間違っていた場合は、小文字に変更しました。

ありがとうございました。これは将来誰にでも役立つことを願っています。

関連する問題