PHP 开发起步示例
开发y一个demo
-
用 PHPstorm 创建新项目 demo
-
构建开发编程环境
- 使用 psr-4 标准化加载机制
- 使用 composer 构建 初始化 项目
- 项目目录下打开命令行运行
composer require symfony/var-dumper
引入 composer.json 的初始结构
-
项目结构显示
> tree -L 2 demo demo ├── composer.json ├── composer.lock └── vendor ├── autoload.PHP ├── composer └── symfony
-
修改 composer.json 配置文件,配置自动加载标准,指定
psr-4
, 并创建一个目录,配置信息完成映射, composer.json 文件内容如下{ "autoload": { "psr-4": { "App\\": "app" } }, "require": { "symfony/var-dumper": "^3.4" } }
终端运行命令,让自动加载在项目中生效
composer dump-autoload -o
输出:Generating optimized autoload files -
编辑 index.PHP
<?PHP require_once 'vendor/autoload.PHP'; dump("this is a composer construct project");
-
测试自动加载,目录结构
app ├── Helper.PHP └── task └── BackTask.PHP
编辑 index.PHP
<?PHP require_once 'vendor/autoload.PHP'; dump("this is a composer construct project"); \App\Helper::println("static function output"); $helper = new \App\Helper(); $helper->sayHello("object function output"); $backTask = new \App\Task\BackTask();
遇到问题记录
问题1:
$ composer require symfony/var-dumper
The "https://packagist.PHPcomposer.com/packages.json" file Could not be downloaded: SSL operation Failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify Failed
Failed to enable crypto
Failed to open stream: operation Failed
https://packagist.PHPcomposer.com Could not be fully loaded, package @R_408_4045@ion was loaded from the local cache and may be out of date
[invalidargumentexception]
Could not find a matching version of package symfony/var-dumps. Check the package spelling, your version constraint and that
the package is available in a stability which matches your minimum-stability (stable).
require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-suggest] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--] [<packages>]...
原因:证书失效
解决:I solved the problem with the SSL error by adding the SSL certificate
// download a certificate
wget http://curl.haxx.se/ca/cacert.pem
配置 PHP.ini 中的 openssl.cafile=
为 下载的文件的 全路径
refer: https://stackoverflow.com/questions/27206719/composer-update-fails-while-updating-from-packagist
问题2:
$ composer require symfony/var-dumper
Using version ^3.4 for symfony/var-dumper
./composer.json has been updated
Loading composer repositories with package @R_408_4045@ion
Updating dependencies (including require-dev)
Package operations: 2 installs, 0 updates, 0 removals
- Installing symfony/polyfill-mbstring (v1.19.0): Downloading (connecting...) Failed to download symfony/polyfill-mbstring from dist: The 'https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b5f7b932ee6fa802fc792eabd77c4c88084517ce' URL Could not be accessed: HTTP/1.1 400 Bad Request
Now trying to download from source
- Installing symfony/polyfill-mbstring (v1.19.0): cloning b5f7b932ee
[RuntimeException]
Failed to clone https://github.com/symfony/polyfill-mbstring.git via https, ssh protocols, aborting.
- https://github.com/symfony/polyfill-mbstring.git
cloning into '/Users/user00/Documents/workspace/PHPtest/demo1/vendor/symfony/polyfill-mbstring'...
fatal: unable to access 'https://github.com/symfony/polyfill-mbstring.git/': LibreSSL SSL_connect: SSL_ERROR_SYSCALL in con
nection to github.com:443
- [email protected]:symfony/polyfill-mbstring.git
cloning into '/Users/user00/Documents/workspace/PHPtest/demo1/vendor/symfony/polyfill-mbstring'...
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-suggest] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--] [<packages>]...
原因:composer 源不可用
解决:配置国内的源
# 配置全局
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer
# 取消全局配置
composer config -g --unset repos.packagist
常见国内的源
composer https://packagist.org
PHPcomposer https://packagist.PHPcomposer.com
aliyun https://mirrors.aliyun.com/composer
tencent https://mirrors.cloud.tencent.com/composer
huawei https://mirrors.huaweicloud.com/repository/PHP
laravel-china https://packagist.laravel-china.org
cnpkg https://PHP.cnpkg.org
sjtug https://packagist.mirrors.sjtug.sjtu.edu.cn
refer: https://learnku.com/articles/15977/composer-accelerate-and-modify-mirror-source-in-china
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。