2014-03-26 17 views
0

debug_backtrace之外,還有其他什麼方法來檢查誰調用了該函數?我正在研究模塊化系統,我喜歡控制哪些模塊可以訪問'核心'功能集中的特定功能/變量。 debug_backtrace對我來說很完美,但我不確定是否要在生產中使用它。如何檢查誰在PHP中調用函數?

+1

'debug_backtrace'創建用於調試。你應該使用'private','protected'和'public',它們被設計用來告訴其他對象和類別他們如何訪問對方。 – barell

+0

@barell我知道如何使用'private','protected'和'public',但是我如何檢查調用函數的模塊,以便我可以決定允許還是拒絕它? – Thomas

回答

0

改爲使用面向對象(OO)方法。使用debug_backtrace這是錯誤的,它用於調試。

您應該使用OO來限制功能。

例如,如果你有一些模塊CustomerProductUser那麼你可以讓它們中的每一個擴展一個不同的類;

class Customer extends Admin_Module 

class Product extends Public_Module 

class User extends Registered_User_Module 

您還可以使用publicprivateprotected聲明停止從子類或其他完全不同類的訪問。

+0

這不幫我;-(我使用面向對象,但我不知道如何拒絕訪問例如'modules/customer/*。php'來訪問'$ core-> getPassword()'。 debug_backtrace'我只是檢查'debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS,1)[0] ['file']'並且完成了工作!我正在尋找'PROPER'的方式來做同樣的功能。 – Thomas

+0

它不會幫助你的方法,因爲你的方法是錯誤的。退後一步,採取正確的方法,然後OO將有所幫助。 –

+0

擴展一個類不給主要類來控制誰可以訪問它,這種方式可以任何模塊擴展核心模塊,看看或不看 - 取決於核心函數的定義,我想要的是例如/ modules/system /中的任何模塊都可以訪問無處不在,以及/ modules/custom /只是從核心中的幾個函數中進行訪問...... – Thomas