2012-05-15 11 views
7

私はこれらの名前空間を大量に適用する方法を見つけようとしています。これは、書き留めるのが不便だからです。私は単純に行うことができることを知っています。jream\ as jを使用してください。ただし、バックスラッシュを避けることができるかどうか確認したいと思います。PHPの名前空間のショートカットはありますか?

require '../jream/Autoload.php'; 

use jream\Autoload as Autoload, 
    jream\Database as Database, 
    jream\Exception as Exception, 
    jream\Form as Form, 
    jream\Hash as Hash, 
    jream\Output as Output, 
    jream\Registry as Registry, 
    jream\Session as Session; 

new Autoload('../jream'); 

これらの行に沿って何かを言う方法はありません:jream\\* as *;

任意のヒントをいただければ幸いです:)

答えて

6

非常に少なくとも、あなたはすべての冗長asエイリアシングをスキップすることができます:あなたはずつそれを入力しなくても、名前空間のすべてを使用する場合

use jream\Autoload, 
    jream\Database, 
    jream\Exception, 
    jream\Form, 
    jream\Hash, 
    jream\Output, 
    jream\Registry, 
    jream\Session; 

を一つは、その後、実際に唯一の本当の選択は、全体として、名前空間のエイリアスを作成し、バックスラッシュを使用することです:

use jream as j; 

new j\Autoload; 
+0

ありがとうございます、これはおそらくこれを実行する最良の方法です。 – JREAM

3

これらの行に沿って何かを言う方法はありません:jream \ * as *; ?

// use-jream.php 
class Autoload extends jream\Autoload {} 
class Database extends jream\Database {} 
... 

// index.php 
require_once 'use-jream.php' 

new Autoload('../jream'); 

をしかし、私は実際にそれをやってお勧めしません:

ありませんが、あなたはこれを行うことができます。

そしてもちろん、あなただけのデフォルトの名前空間変更する場合:

namespace jream; 

new Autoload('../jream'); 

PHPのクラスはおそらく存在し得るかどうかを決定するために絶対に方法がないため、すべてのimport jream.*はこれまで、PHPに意味するかもしれませんさあなたがそれを知らせない限り、特定の名前空間に

+0

お返事ありがとう、私は名前空間を設定する最後の部分が好きです! – JREAM

関連する問題