2012-08-07 48 views
1

我有幾個相互獨立的功能,我用它們包裝在一個類中,所以我可以通過spl_autoload_register()自動加載它們。但是我的公用事業班現在變得如此之大,現在已經有近1000條線路了。自動加載實用功能

現在我正在考慮將每個函數分成每個類/文件。

如果你覺得這是你認爲什麼是最好的辦法是個好主意:

// load_foo.php 
class load_foo 
{ 
    public function __construct ($params,..) 
    { 

    } 
} 

// usage 
new load_foo($params); 

// load_foo.php 
class load_foo 
{ 
    public static function exec ($params,..) 
    { 

    } 
} 

// usage 
load_foo::exec($params); 
+1

首先劫持類系統只是將其用作函數集合,這是一個糟糕的主意。 – rid 2012-08-07 17:20:03

+1

@Radu我認爲OP現在意識到這一點。 – Matt 2012-08-07 17:21:55

+0

如果類是那麼大(合法的那麼大),可以使用繼承將其分解爲更具體的功能的子對象。如果您只是將它用作過程函數的替代品,那麼首先使用對象是一個壞主意。 (提示:所有東西都可以製作成一個對象;你只需要停下來思考一下。)看起來你正在進行一個重要的重構,@IMB。 – Matt 2012-08-07 17:23:22

回答

1

因爲顯然你不使用「對象」的概念,然後最好如果你使用「static」選項,load_foo :: exec($ params);

這就是說,我認爲「將每個函數分隔到每個類/文件中」。是過分的,你會得到太多的文件和類。即使這些功能是不相關的(如您的意見所示),請嘗試將它們放入您使用自動加載器加載的幾個文件中。

在另一個說明中,您可以使用加速器,如APC或xcache。這些將保留預編譯的代碼版本,大大降低加載文件對性能的影響。