composer的初级使用

补上一篇文章的坑;
要使用 composer 首先是要安装它;
安装 composer 的前提要求是已经有 php 环境了;
同时需要开启 opensslfileinfo 扩展;
参考 phpstudy配置虚拟主机及开启扩展;
mac或者linux系统直接执行下面的命令;

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

windows童鞋直接点击下面链接;
https://getcomposer.org/Composer-Setup.exe
安装的过程中需要注意的是要找到php.exe;
选择正确的php路径;
比如说这个样子的;

安装成功的标志就是在命令行输入;

composer -v

显示如下内容;

如果安装成功;
但是提示命令找不到;
那就是环境变量的问题;
至于环境变量怎么搞;
那百度吧;
这个讲起来又得一篇文章;
太拖节奏了;
如果还有更多问题;
那我给出官网;
https://getcomposer.org/

什么;打不开网站;
请相信;我给出的绝对是官网地址;
官网决没有那么容易宕机;
可能是你的人品问题;
赶紧面壁思过;
好好想想原因;
实在不行;就访问中文网站吧;
http://www.phpcomposer.com/

走到这的;
我就都当成composer已经安装成功的;
那么;因为你懂得的原因;
在中国局域网内;
使用composer是比较慢的;
不过好在国内有镜像;
执行如下命令切换到国内的镜像;

composer config -g repo.packagist composer https://packagist.phpcomposer.com

折腾了这么长时间;
准备工作终于做完了;
百闻不如一run;
咱拿着composer搞个验证码用用吧;

还记得上篇文章敲黑板画的重点么?
咱先在packagist上搜captcha

按下载量排第一个是google的;
在国内;看见谷歌就绕着走吧;
咱直接看第二个吧;
点开后;是这个样子的;

可以看到;这里先有一个基本的安装命令;
咱在php项目目录下运行;

composer require gregwar/captcha


安装完成后目录结构是这个样子的;
验证码扩展包就在vendor目录下;
这个咱不需要关注;
如果你的目录没有index.php的话;
哪...这是正常的;
index.php文件是我手动建的用来访问的;

扩展包安装完;
使用起来就超级简单了;
在index.php文件中引入vendor目录下的autoload.php
然后按照文档复制代码;

<?php

use Gregwar\Captcha\CaptchaBuilder;

require 'vendor/autoload.php';

// 生成验证码
$builder = new CaptchaBuilder;
$builder->build();

// 显示验证码
header('Content-type: image/jpeg');
$builder->output();

浏览器访问;
验证码已经生成了;

是不是特别好用;
还有更多验证码的使用方式和样式;
有详细的文档以供参阅;
如果有问题还可以在github上提issues;
全世界的热心程序猿帮你解决bug;

好了;又到了敲黑板画重点的时候了;
以后;当我们想实现一些常见的功能的时候;
第一步;上packagist搜索扩展包;
第二步;composer require 作者名/扩展包名
第三步;require 'vendor/autoload.php';
第四步;按照文档实例化类调用方法
其中第三步只需要require一次即可;

好了;
安装单个的扩展包咱讲完了;
如果想安装完整的项目怎么办呢?
这次咱搜索 baijunyao

直接运行提示的命令;

composer create-project baijunyao/laravel-bjyblog

这样;只需要一个命令就可以把我的博客项目下载下来了;

再次敲黑板画重点了;
安装单个扩展包使用的命令是:composer require 作者名/扩展包名;
安装完整的项目使用的命令是:composer create-project 作者名/项目名

OK到这;
下篇文章要用到的知识点也都讲完了;
更深入的留给以后再讲;
名字我都想好了;
就叫composer的中级使用吧;
这就是后话了;
那么接着就要开始laravel系列的文章了;
让我们走进laravel的世界吧;

白俊遥博客
请先登录后发表评论
  • 最新评论
  • 总共24条评论
白俊遥博客

乐生:我想问下,那个安装命令是在本地的CMD里面直接运行吗?在PHP目录下运行是什么意思。我在CMD里面已经切换到我的phpstudy里面的www目录了,然后输入那个安装命令,会提示没有主机。

2018-09-23 23:03:23 回复

白俊遥博客 白俊遥博客
  • 云淡风晴 回复 乐生:你执行的什么命令?
  • 2018-10-20 21:58:07 回复
白俊遥博客

花舞千魂殇:相见恨晚的赶脚

2018-07-25 13:41:42 回复

白俊遥博客

Running:大神,麻烦看一下,这个问题之前有人问过类似的,当时说等到正式发布就好了,现在距离上次提问已经快一年了,是正式版本还没有发布吗?还是因为我的php版本太低导致的? [InvalidArgumentException] Could not find package baijunyao/laravel-bjyblog with stability stable in a  version installable using your PHP version 5.3.29.

2018-03-22 18:39:43 回复

白俊遥博客 白俊遥博客
  • 云淡风晴 回复 Running:laravel 要求php7以上;升级下php;
  • 2018-03-31 19:37:02 回复
白俊遥博客

我若化成风白俊遥博客白俊遥博客

2017-09-08 09:45:50 回复

白俊遥博客

我若化成风白俊遥博客

2017-09-08 09:44:18 回复

白俊遥博客

Wake1:后盾的老同学你好呀

2017-09-07 17:14:19 回复

白俊遥博客

吴伟祥:为了laravel  而学

2017-07-19 00:32:21 回复

白俊遥博客

Serene:我还想向你请求关于csrf的问题;我理解的是前台调用{{csrf_field()}}生成token,然后匹配session里的token,如果一致,就不是伪造访问。反之就是伪造,不能访问;那么表明无论你是否api接口模式开发,你都必须在前台生成token,才能保证数据的真实性;但我查网上的说法是,csrf是阻止跨域访问的,API接口模式访问就已经是跨域了,根本不用csrf的保护了,所以应该关闭csrf;我理解这两种说法相悖,能帮我解释一下吗?

2017-07-14 16:49:21 回复

白俊遥博客 白俊遥博客
  • 云淡风晴 回复 Serene:首先;接口模式并不是跨域;其次;接口使用jwt之类的安全验证;已经防止伪造提交了;
  • 2017-07-14 23:07:46 回复
白俊遥博客

Ec visitors:白老大是什么原因啊

2017-07-08 21:53:56 回复

白俊遥博客

Ec visitors:安装composer提示“此应用无法在你的电脑上运行

2017-07-08 21:53:36 回复

白俊遥博客 白俊遥博客
  • 云淡风晴 回复 Ec visitors:试试这个?http://blog.sina.com.cn/s/blog_543948100102w09x.html
  • 2017-07-10 21:28:42 回复
白俊遥博客

Serene:刚从tp3.2转来laravel,想做个前后端分离的权限管理,思路大体是用户身份认证自己写接口判读,权限认证用自带的ACL实现。本想composer看下你admin项目的实现方式,还没运行起来。。。白大有什么建议呢?

2017-07-06 14:58:43 回复

白俊遥博客 白俊遥博客
  • 云淡风晴 回复 Serene:前后端分离;是要接口安全的话;我用的https://github.com/tymondesigns/jwt-auth/   权限管理;我用的https://github.com/Zizaco/entrust/
  • 2017-07-10 21:35:52 回复
白俊遥博客
  • Serene 回复 云淡风晴:恩恩。我composer你的laravel-bjyadmin,composer update之后 发现缺少文件(vendor里面的autoload.php)文件PHP Fatal error:  require(): Failed opening required '/data/wwwroot/default/laravel-bjyadmin/bootstrap/../vendor/autoload.php' (include_path='.:/usr/local/php/lib/php') in /data/wwwroot/default/laravel-bjyadmin/bootstrap/autoload.php on line 17
  • 2017-07-13 16:50:07 回复
白俊遥博客
  • Serene 回复 云淡风晴:接口规范你有用dingo api么?还是你是自己写的?
  • 2017-07-14 14:13:56 回复
白俊遥博客
  • Serene 回复 Serene:看到了,有用dingo api
  • 2017-07-14 14:46:34 回复
白俊遥博客
  • Serene 回复 云淡风晴:我看到的,view层你用的是laravel的blade模板,想问一下,后台的权限认证是不是没有实现真正的前后端分离?权限认证没有写成API接口吧?
  • 2017-07-14 14:50:53 回复
白俊遥博客

Serene:白大能不能开发一下上传图片的功能,有些报错粘贴图片更直接明了

2017-07-06 14:54:49 回复

白俊遥博客 白俊遥博客
  • 云淡风晴 回复 Serene:可以参考我的上传图片的函数https://github.com/baijunyao/laravel-bjyadmin/blob/master/app/Library/Function/helper.php#L250;
  • 2017-07-10 21:37:51 回复
白俊遥博客
  • Serene 回复 云淡风晴:恩,这个我知道,我说的是你的博客回复开启上传图片功能,这样有报错直接贴图不是更直接明了?
  • 2017-07-10 21:44:41 回复
白俊遥博客 白俊遥博客
  • 云淡风晴 回复 Serene:已经考虑评论可以直接贴代码的功能了;
  • 2017-07-12 23:21:20 回复
白俊遥博客

Serene:composer create-project baijunyao/laravel-bjyblog;composer你的项目,报错,我的环境哪搭错了呢。我的环境是Ubuntu16.04,PHP环境是用oneinstack的lamp一键安装包;php: /usr/local/openssl/lib/libcrypto.so.1.0.0: no version information available (required by php)php: /usr/local/openssl/lib/libssl.so.1.0.0: no version information available (required by php)php: /usr/local/openssl/lib/libssl.so.1.0.0: no version information available (required by php)php: /usr/local/openssl/lib/libssl.so.1.0.0: no version information available (required by php)Cannot create cache directory /home/serenehaly/.composer/cache/repo/https---packagist.org/, or directory is not writable. Proceeding without cacheInstalling baijunyao/laravel-bjyblog (v1.5.3)Cannot create cache directory /home/serenehaly/.composer/cache/files/, or directory is not writable. Proceeding without cache                                [ErrorException]              mkdir(): Permission denied                                create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--no-secure-http] [--keep-vcs] [--no-install] [--ignore-platform-reqs] [--] [] [] []

2017-07-06 14:53:36 回复

白俊遥博客

Serene:你好,ubuntu14.4 安装第一步时报错:PHP Warning:  copy(): SSL operation failed with code 1. OpenSSL Error messages:error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in Command line code on line 1PHP Warning:  copy(): Failed to enable crypto in Command line code on line 1PHP Warning:  copy(https://getcomposer.org/installer): failed to open stream: operation failed in Command line code on line 1我已经安装了openssl,但还是错误。要怎么修改呢

2017-07-06 04:17:03 回复

白俊遥博客 白俊遥博客
  • 云淡风晴 回复 Serene:看这个可以不?http://www.yiichina.com/tutorial/441
  • 2017-07-10 21:41:29 回复
白俊遥博客
  • Serene 回复 云淡风晴:我已经解决了,谢谢哈
  • 2017-07-10 21:45:04 回复
白俊遥博客

4暮:验证码部分成功下载并运行。但是下载你的博客项目报错了。劳驾看下是怎么回事."[InvalidArgumentException]  Could not find package baijunyao/laravel-bjyblog with stability stable in a   version installable using your PHP version 5.4.33."

2017-06-28 10:59:36 回复

白俊遥博客 白俊遥博客
  • 云淡风晴 回复 4暮:laravel-bjyblog还在完善中;等正式发布就可以了;
  • 2017-06-28 22:15:21 回复
白俊遥博客

蓝天白云:为什么设置验证码长度无效... 能贴一下成功的代码吗

2017-06-23 16:47:16 回复

白俊遥博客 白俊遥博客
  • 云淡风晴 回复 蓝天白云:试着研究下它的源代码;看能搞定不?
  • 2017-06-28 22:40:33 回复
白俊遥博客

=͟͟͞͞若=͟͟͞͞水:白俊遥大神,你好!总是看你的博客,第一次留言. 哈哈

2017-06-23 16:24:41 回复

白俊遥博客 白俊遥博客
  • 云淡风晴 回复 =͟͟͞͞若=͟͟͞͞水:多谢支持;非常荣幸;
  • 2017-06-28 22:19:43 回复
白俊遥博客

越zgy白俊遥博客

2017-06-22 23:43:31 回复

白俊遥博客

墨 竹白俊遥博客您好大神,方便加下QQ吗?学习过程中遇到一些不懂的问题自己琢磨不透,在一个管理类学校想找个人问问简直太难了

2017-06-22 23:11:42 回复

白俊遥博客
  • 墨 竹 回复 墨 竹:QQ:510805481
  • 2017-06-22 23:52:39 回复
白俊遥博客

ShrRung白俊遥博客厉害了

2017-06-21 20:43:44 回复

白俊遥博客

江南:您好,楼主,方便加下您的qq或加下我824398038吗,一些不懂的问题想请教下。。

2017-06-19 11:46:38 回复

白俊遥博客

ArSen .:每日到此一游

2017-06-19 09:06:53 回复

白俊遥博客

爱便流通于世白俊遥博客写的很详细.支持!

2017-06-18 15:12:06 回复

白俊遥博客

杨红伟:怎样把自己的项目提交到 packagist

2017-06-18 15:09:51 回复

白俊遥博客
  • 杨红伟 回复 杨红伟:我自己已经研究完了,这个不错!
  • 2017-06-18 15:31:29 回复
白俊遥博客
  • 小杜子 回复 杨红伟:不错错
  • 2017-06-23 13:17:58 回复