在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/PHP  HTML/ 編寫composer插件的一些問題

編寫composer插件的一些問題

目前本人正在開發(fā)一個釘釘?shù)腸omposer包,目前是有一些問題
1.目前我把一些不同的功能封裝到了不同的class中,但是呢我希望可以在別人使用我這個包的時候只需要new一次就好,否則用起來new的太多感覺可能不舒服,而且參數(shù)還需要從一個class再手工填寫另一個class,人寫很有可能寫錯,我看釘釘官方給的文件里面是寫一個方法,你直接把class名,函數(shù)名,參數(shù)傳過來,然后在這個方法內(nèi)new對象,在拼裝函數(shù)調(diào)用,感覺頁太敷衍了,這樣還不如直接讓new對象呢。
2.緩存的問題,釘釘?shù)腶ccessToken和jsticket需要緩存7200秒,目前是使用讀取文件的方法緩存,有沒有更優(yōu)雅的解決方法呢?我會留出口子可以讓用戶自定義緩存的函數(shù),但是我認為有很多人都是不會去自定義的,但是這樣的話就要求緩存文件有文件讀寫的權(quán)限,但是我遇到過很多人他們使用linux的時候根本不會調(diào)整權(quán)限。

回答
編輯回答
賤人曾
  1. 用單例或工廠模式解決
  2. 如緩存自定義文件的形式,可考慮以配置的形式,代入(傳一個文件路徑進去)
2018年6月25日 16:45
編輯回答
憶往昔

1.第一個你可以考慮依賴注入容器,這樣就可以保證你直接new 一個類,來通過容器的get方法獲取得到響應的對象實例.不過,我覺得這種并不太適合你,你可以考慮一下用1樓所說的工廠模式.畢竟一個插件用依賴注入的話.接口一多,自己是不太很好去排查錯誤的.
2.緩存的方式,我的建議是在composer里面的script里面來執(zhí)行一些初始化的方法.自行創(chuàng)建自己所需要到目錄.當然,配置傳參也是可以的.我覺得有一種很好的方式來寫這種緩存.適配器.你可以先預訂幾個適配器,通過適配器來對應不同的緩存方式.然后用戶只需要寫適配器就行了.給你一個例子吧.市面上有做的好的.例如flysystem的adapters,例如:

use League\Flysystem\Filesystem;
use League\Flysystem\Adapter\Local;

$adapter = new Local(__DIR__.'/path/to/root');
$filesystem = new Filesystem($adapter);
2017年6月9日 06:28
編輯回答
近義詞

可以考慮通過反射來實現(xiàn)依賴注入的問題,在新增一個實例的時候打到new一次的效果。至于數(shù)據(jù)緩存的問題,好像暫時沒有什么新穎的想法

2018年7月29日 01:43