个人不太喜欢引入过多的 package
- 很简单功能的 package,比如 为你的 Laravel 模型增加分享功能 ,因为功能实在太简单,我自己写可能只要10分钟就能搞定,找扩展、学习扩展的用法可能就要花几个小时,不划算,还有可能这个扩展在未来可能并不能满足你的需求,或者是没有支持新版本的 Laravel,你要去改动要么是 fork 之后自己发一个 composer 包,要么是提 issue 等作者更新。
- 涉及前端代码的 package,比如 Laravel-Administrator。近几年前端开发发展迅猛,webpack 等前端构建工具已经非常成熟,像 Laravel-Administrator 这种还把前端类库放在代码库里的 package,我是绝对不能接受的。另外就是界面风格基本上锁死,否则 summer 也不会自己 fork 一个来优化 UI 了。
我通常引入的 package 有这么些特征:
- 通用类库,比如 jwt 、predis
- 非常复杂的功能,比如 oauth(即 Laravel 的 passport)
- 各种 sdk,比如 easywechat
- 辅助开发的包,如 laravel-ide-helper、tinker
另外我不会特地去使用那些专门为 Laravel 封装的 package,比如 laravel-wechat,我宁愿使用 easywechat,原因如下:
- 这些 package 通常会注册一些 Facade。而我个人认为除了 Laravel 自带的 Facade,其他 Facade 会带来额外的不必要的学习成本和 debug 成本,特别是在多人合作的情况下。
- 这些 package 通常会生成一个 config 文件。当这种 package 非常多的时候,config 目录下文件会非常多,要找某个配置可能得仔细翻半天。
以上都是我个人对引入 package 的观点,请根据自己项目的实际情况参考。
个人不太喜欢引入过多的 package
- 很简单功能的 package,比如 为你的 Laravel 模型增加分享功能 ,因为功能实在太简单,我自己写可能只要10分钟就能搞定,找扩展、学习扩展的用法可能就要花几个小时,不划算,还有可能这个扩展在未来可能并不能满足你的需求,或者是没有支持新版本的 Laravel,你要去改动要么是 fork 之后自己发一个 composer 包,要么是提 issue 等作者更新。
- 涉及前端代码的 package,比如 Laravel-Administrator。近几年前端开发发展迅猛,webpack 等前端构建工具已经非常成熟,像 Laravel-Administrator 这种还把前端类库放在代码库里的 package,我是绝对不能接受的。另外就是界面风格基本上锁死,否则 summer 也不会自己 fork 一个来优化 UI 了。
我通常引入的 package 有这么些特征:
- 通用类库,比如 jwt 、predis
- 非常复杂的功能,比如 oauth(即 Laravel 的 passport)
- 各种 sdk,比如 easywechat
- 辅助开发的包,如 laravel-ide-helper、tinker
另外我不会特地去使用那些专门为 Laravel 封装的 package,比如 laravel-wechat,我宁愿使用 easywechat,原因如下:
- 这些 package 通常会注册一些 Facade。而我个人认为除了 Laravel 自带的 Facade,其他 Facade 会带来额外的不必要的学习成本和 debug 成本,特别是在多人合作的情况下。
- 这些 package 通常会生成一个 config 文件。当这种 package 非常多的时候,config 目录下文件会非常多,要找某个配置可能得仔细翻半天。
以上都是我个人对引入 package 的观点,请根据自己项目的实际情况参考。
优秀的作者维护勤劳的 package 还是要多用,特别是非简单的功能,像管理员所说的 Facade Config, Facade 可以删除,而且 Facade 基本不需要深入了解,只要会用简单了解即可, Config问题比如:config 目录下建个自下载 package 放置目录 selfConfig,再把 package 稍做修改,同时学习优秀的 package 代码,相信就算那一天,有个别包作者不再维护升级,到时自个也能把包升级。刚开始可能会需要多花点时间了解 package 包,实战多民,后面的 package 自然顺。 以上为个人观点
个人不太喜欢引入过多的 package
我通常引入的 package 有这么些特征:
另外我不会特地去使用那些专门为 Laravel 封装的 package,比如 laravel-wechat,我宁愿使用 easywechat,原因如下:
以上都是我个人对引入 package 的观点,请根据自己项目的实际情况参考。