簡體   English   中英

PHP PSR-0靜態類

[英]PHP PSR-0 Static Class

我正在嘗試重寫OO PHP網站(大致遵循MVC結構),因此它使用名稱空間-並希望遵循PSR-0。

在當前站點中,我有一個類(稱為APP),該類充滿了靜態方法,我在各處調用這些方法來處理諸如獲取配置數據之類的事情。 APP::get_config('key')

顯然,使用命名空間,我需要調用\\TheNameSpace\\App::get_config('key') 我經常使用此類,因此要避免每次使用時都必須為命名空間添加前綴。 我確實從其他類中調用方法,這些類通常位於子命名空間下-因此更改文件頂部的命名空間將無法真正起作用。

因此,我想我的問題是,擁有一個“全局”類的最簡單方法是使用可以在任何地方調用而不必每次都以名稱空間為前綴的方法?

在腳本頂部添加

use TheNameSpace\App as MyApp

例如。 然后,您可以像

app = new MyApp();

在您的腳本中。 當然,您無需在此處使用別名。 只是

use TheNameSpace\App
app = new App();

也會起作用。

實現這一目標的全局類是不好的風格,您不應該這樣:

class MyApp extends TheNameSpace\App { }

....
myApp = new MyApp();
namespace Foo;
use Bar;

然后,您不必執行\\Bar\\fn

因此,在您的情況下:

namspace Foo;
use TheNameSpace\App;

App::get_config('blah')

閱讀php手冊中有關使用/別名空間的部分。

http://www.php.net/manual/zh/language.namespaces.importing.php

您可以使用“ use”排除名稱空間。 您可以隨意命名。

use TheNamespace\App as App //You can name it anything here
App:config('key');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM