PHP 开发起步示例
2022/5/29 1:21:37
本文主要是介绍PHP 开发起步示例,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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");
运行
php index.php
输出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();
运行
php index.php
输出正常
遇到问题记录
问题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 information 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 information 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 - git@github.com:symfony/polyfill-mbstring.git Cloning into '/Users/user00/Documents/workspace/phptest/demo1/vendor/symfony/polyfill-mbstring'... git@github.com: 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
这篇关于PHP 开发起步示例的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享