156-0102-3311
联系QQ 284710375
首页 > 技术分享 > Linux
分享到:收藏

深入浅出,真正掌握composer2019-10-28 14:48:00

composer是现代PHP的基石

现代高级编程语言,依赖管理工具是必不可少的。Java有Maven,Python有pip,Nodejs有npm, 而在composer出现之前,PHP只有被广为诟病的Pear。由于Pear实在太难用,很少PHP开发者用到这个工具,以致于PHP的开发生态很糟糕,连一个像样的依赖管理工具都没有,让PHP这门占据了web网站开发主流市场的语言很尴尬。开发过程中,要用到第三方的类库,需要去下载zip包,然后解压,放到相应的目录,处理好命名空间,自动加载的问题,如果这个第三方包还有其他依赖项,还要再次重复这个流程,看着隔壁家python和node.js一个命令行就搞定,显得php开发人员的操作既原始又滑稽。


所幸,金光闪闪的composer驾着七彩祥云来了,PHP终于有了真正意义的依赖管理工具。可以说,composer是现代PHP的基石。


composer解决了项目的依赖关系,且实现了自动加载。开发人员只需要几个命令行,就能获取其他开发者的包,PHP开发工作因此变得如同堆积木,可以根据业务的需求,快速方便地拆解组合代码。


奇怪的是,即使compoer已经诞生好些年了,而且所有主流框架都支持composer,可竟然还有不少PHP开发者不用这个工具。甚至还有人觉得composer加大了PHP的学习难度。


持有这种想法的人,就好像是一辈子都用纸笔手工记账,有朝一日,给他配置了电脑,跟他演示了excel是如何地强大。他不为新事物的强大感到震撼惊喜,而是蹙眉不满地说:“这东西太难学了,我还是习惯用纸笔”。


对于持有这种想法的人,我只能两手一摊。心态衰老的年轻人,如果他的内心一直在装睡,任谁也叫不醒。但时代的步伐可不会因为他们的拉后腿而停止前进,只会把他们远远甩在身后...


初识composer

composer的安装步骤,在composr中文社区有详细的说明,点击查看


安装流程

安装的流程很简单,归结为以下几步:

php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"   # 下载安装脚本 - composer-setup.php - 到当前目录

php composer-setup.php   # 执行安装过程

php -r "unlink('composer-setup.php');"   # 删除安装脚本

sudo mv composer.phar /usr/local/bin/composer   # 全局安装

composer config -g repo.packagist composer https://packagist.phpcomposer.com   # 更换国内镜像源

安装完成后,输入composer,查看composer版本



常见错误

1、Do not run Composer as root/super user! See https://getcomposer.org/root for details

意思是不要在root超级用户下执行,所以就更换一个用户吧

[root@linux local]# useradd test

[root@linux local]# passwd test

Changing password for user test

New password: 

Retype new password: 

passwd: all authentication tokens updated successfully.

[root@linux local]# su test

[test@linux local]$ 

[test@linux local]$ composer -V

Composer version 1.7.3 2018-11-01 10:05:06

#进入目录招待composer install安装即可


2、proc_open(): fork failed - Cannot allocate memory

根据所提供网址访问https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors

上面显示有提供问题发生的可能原因和解决办法。再根据根据问题描述得知可能是内存原因,maybe是没有给composer配置内存?

/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024

/sbin/mkswap /var/swap.1

/sbin/swapon /var/swap.1

运行这几条命令后问题解决


打赏

阅读排行

    大家都在搜

    博客维护不易,感谢你的肯定
    扫码打赏,建议金额1-10元
  • 15601023311