这个话题之前是在微博公司内部做的技术分享,这里拿出来分享给大家。
基于GitHub或者其它平台托管的开源项目的引入大家应该都已经非常熟悉了,但是公司内部项目的模块化应该怎么做呢?这或许是不少朋友头疼的问题。
我们先聊聊PHP模块化开发演进的过程,在没有GitHub之前,我们大家获取与分享代码的方式主要是博客,国内的CSDN或者博客园还有很多很多,大家都是从文章内把代码复制到自己项目里面使用,真的是相当原始粗暴,但是那个时代也没有太多可选的方案。导致的现象就是一段代码在N个项目里出现,可能见得最多的就是获取客户端IP的那几行了,在互联网上不止出现了几万遍。现在很多项目里都还是这段:
是不是很熟悉?
这种引入代码的方式有很多弊端:比如不安全,因为很多人是直接复制粘贴就用上了,根本没花时间去考证它是否真的是安全的。另外一个问题就是不同步,你今天在别人那里复制过来就用上了,后来作者发现了bug并修复更新了文章也不会通知你,你也不可能记得这段代码来自哪里去检查更新。
在没有Composer之前我们是如何引入代码的呢?除了上面说的复制粘贴以外,在PHP中还有pear,不过自从用过两次我就再也不用它了,一种说不出来的感觉。
不信你可以找一些旧的项目看看,在没有Composer之前的项目中,你会发现大量的重复代码,以及各种花样的组织格式,各种规范的写法。这也是Composer诞生的原因之一。
Composer给我们带来了诸多的好处:
模块化,降低代码重用成本
统一的第三方代码组织方式
更科学的版本更新
这三个是比较重要的特征了,基于GitHub的共享代码方式解决了传统引入方式带来了各种问题。
我们先来了解一点Composer基础。
Composer的实现结构相对比较简单,Packagist.org是Composer官方数据源,它的数据基于GitHub等代码托管平台,你在本地使用Composer命令行工具,基于Packagist.org的数据信息安装与更新依赖。
本地安装Composer非常简单,主要有以下几种方式:
新手同学需要注意的是,这里一定要确定北京哪个医院白癜风最好治疗白癜风的方法