0

SplEnum を拡張する、私が作成したクラスのオートロードに問題があります。Spl_Types のインストールに成功しました。

奇妙なことに、このクラスは CLI 経由で実行すると正常に自動ロードされます。ただし、apache を介してスクリプトを実行すると問題が発生します。

クラスは次のように定義されます。

<?php
namespace base\main\domain;
use SplEnum;
/**
 * Represents a colour.
 *
 **/
class Colour extends SplEnum {
...

これを実行する:

spl_autoload_register(array($autoLoader, 'autoLoad'));
spl_autoload_register('spl_autoload');
$colour = new base\main\domain\Colour(base\main\domain\Colour::BLACK);

与えます:

致命的なエラー: Class 'SplEnum' not found in [...] Colour.php 行 8

私はphpinfo()Apacheを実行し、リストされているphp.iniファイルにspl_types拡張子が含まれていることを確認しましたが、まだ喜びはありません.

これについてご協力いただければ幸いです。

ありがとう、

ロス

4

2 に答える 2

2

これと同じ問題に遭遇しましたが、単純なものservice httpd restartが必要だったようです。

https://github.com/davidcoallier/SPL_Typesから使用される SPL_TYPES

以下でコンパイル:

tar xvf SPL_Types-0.3.1.tgz
cd SPL_Types-0.3.1
phpize
./configure
make
make test
make install

echo -e "; Enable spl_types extension module\nextension=spl_types.so" > /etc/php.d/spl_types.ini
service httpd restart 
于 2012-01-07T09:15:01.523 に答える
1

やってみました:

class Colour extends \SplEnum {
于 2011-08-05T10:24:10.370 に答える