我正在使用Laravel 3(新增功能)。我有一個我用作庫的API幫助器類。我想讓這個類實例化,以便我可以在我的所有模型中使用它來訪問API。我正在努力研究如何在每個模型中沒有實例化的情況下做到這一點。一個例子會很棒。謝謝。在Laravel3的所有模型中使用的類實例化
0
A
回答
1
有幾種方法可以做到這一點,最簡單的方法可能就是創建一個base
模型,在該模型中實例化API幫助程序類,然後爲要訪問的所有模型擴展該基本模型API。
它看起來是這樣的:
// base.php
class Base {
public static function api()
{
return new YourApiClass;
}
}
// user.php
class User extends Base {
public static function name()
{
return parent::api()->callApiMethod();
}
}
你也可以使用Laravel 3's IoC container,這可能是取決於你在做什麼更好的選擇。
1
使用IoC容器。
實例化類:
IoC::register('mailer', function()
{
$transport = Swift_MailTransport::newInstance();
return Swift_Mailer::newInstance($transport);
});
然後當你需要訪問你的情況下,你只需要:
IoC::instance('mailer', $instance);
+0
我該如何解決它,以便我可以在所有類方法中使用該實例?構造函數? – pgtips 2013-05-09 02:56:44
相關問題
- 1. 調用cron的所有模型實例
- 2. 實例化實現通用接口實例的所有類
- 3. 在Django中使用manytomany字段實例化模型實例
- 4. 找出用於在Java中實例化模板的類型
- 5. 使用泛型類型實例化DynamoDBQueryExpression
- 6. 實例化Kotlin中的泛型類型
- 7. Backbone中現有模型的實例化模型
- 8. 所有實例上的模型實例dependend的計算屬性
- 9. Haskell:在沒有實例的模塊中使用類型類的函數
- 10. PCL爲所有函數實例化新的點類型
- 11. 使用關聯實例化模型
- 12. 從模板中的給定實例實例化模型
- 13. 在typedef中使用不完整類型的列表實例化
- 14. 模型類的codeigniter實例
- 15. 實例化類型:何時使用新?
- 16. 使Web API IModelBinder適用於該類型的所有實例
- 17. 具有不同修飾類型的實例化模板
- 18. 如何在magento中實例化模型
- 19. 實例化飛鏢中的泛型類
- 20. Haskell中的實例化類型變量
- 21. 如何在Rails中顯示模型的所有實例?
- 22. 類實例的所有ViewControllers
- 23. 在C++中實例化派生類型
- 24. 從泛型類型的Swift實例化
- 25. 泛型類型的實例化?
- 26. 什麼是類型理論中的所有類型的所有實例的常見超類型
- 27. GWT序列化 - 類沒有可實例化的子類型
- 28. C++不同類型的模板類的顯式模板化函數實例化
- 29. 如何讓webdriver實例在所有類文件中使用相同的實例
- 30. 已知類型的實例化類
這會有所幫助,謝謝。如果我在構造函數的基類中使用IoC容器,然後嘗試在其他模型中使用它,該怎麼辦? – pgtips 2013-05-08 18:40:36
當然你可以做到這一點。 [這裏是一些關於IoC容器的附加信息](http://codehappy.daylerees.com/ioc-container),它可以闡明在哪裏以及如何使用它們。 – tplaner 2013-05-08 18:46:07
太好了,非常感謝,感謝指導! – pgtips 2013-05-08 18:49:16