2012-03-08 21 views
2

私が使用するAPIのためにapplication/librariesに複数のライブラリーが作成されています。phpの名前空間を使用したHMVCパターンのコントローラーの名前付け

のAPI:

  • Vimeoの
  • Flickrの今、私は他のモジュールによって、要求に応じてライブラリと相互作用することapplication/modules/apis/controllers/vimeo.phpapplication/modules/apis/controllers/flickr.phpで作成した

  • ライブラリ/ Flickr.php:

    の問題は、今、私はクラスを再宣言ということです

    Class Flickr { }

  • モジュール/ APIを/コントローラ/ flickr.php:

    Class Flickr extends MX_Controller { }

だから、私はapache2ののエラーログに取得する:Cannot redeclare class Flickr in ...

EDIT:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

Class Flickr extends MX_Controller { ... } 

私はどのように使用する必要があります:

namespace controllers\blog 

class user extends \CI_Controller { 

は、だから私のmodules/apis/controllers/flickr.phpファイルに持ちます

ここで説明:http://codeigniter.com/forums/viewthread/212661/

はやってみました:

<?php 

//TRIED: 
namespace controllers\flickr; 
namespace Flickr; 
namespace modules\apis\controllers\flickr; 

if (! defined('BASEPATH')) exit('No direct script access allowed'); 

Class Flickr extends \MX_Controller { ... } 

$_ns = __NAMESPACE__; 

しかし、私は「アレックス」とコントローラと関数を呼び出し、私のログにエラーをエコー単純な関数からの応答がありません。

答えて

1

PHP 5.3で名前空間のサポートが追加されました。 CodeIgniterはまだそれらをサポートしていませんが、あなたがそれらを使用できるようにするパッチを持っていると主張している最近のフォーラム投稿を見つけました。

http://codeigniter.com/forums/viewthread/212661/

+0

私は今それをチェックアウトしていますが、TNX – Alex

+0

これが解決策になるように縫い目が、それは私が私の問題に適用する方法を理解してもらうことはできません。どのように '名前空間コントローラ\ブログ' 'クラスのユーザーが\ CI_Controller {'は私の場合でなければならないのですか? – Alex

+0

パッチされたcodeigniterファイルを入手しましたか? – AndrewR

関連する問題