一直都是使用框架的脚手架搭件项目,今天尝试从零搭建一个PSR-4 的项目,道路略有坎坷,但最终走通了,于是把路记录下来。
- 首先打开
shell ,新建项目目录,这里起名project
$ mkdir project && cd project
$ composer init
-
接下来会有交互问题,一路默认回车即可。 -
现在目录中,只有一个composer.json 文件,其中内容如下图所示 -
然后继续建立一个app目录(用来放class文件的目录),在新建一个client.php 文件(这个文件就是程序的入口,也可以角index.php )。打开composer.json 文件,并修改其内容,添加autoload 对象。
{
"name": "icemoon/project",
"authors": [
{
"name": "HeLiang",
"email": "hl449006540@126.com"
}
],
"require": {},
"autoload": {
"psr-4": {
"App\\": "app/"
}
}
}
- 继续回到
shell 中,执行composer dump-autoload ,会生成vendor 目录,目录中的autoload.php 文件非常重要,后续会用。接下来到app目录新建Apple类 - 简单编写Apple类内容如下
<?php
namespace App;
class Apple
{
private $property;
public function __construct()
{
$this->property = "apple";
}
public function getProperty()
{
return $this->property;
}
}
- 然后在
client.php 文件中写入如下测试内容。
<?php
require "./vendor/autoload.php";
$object = new \App\Apple();
echo $object->getProperty() . PHP_EOL;
- 见证神奇的时候到了,回到
shell 中,运行php client.php ,结果正确如下所示:
参考: [1] https://docs.phpcomposer.com/04-schema.html#autoload [2] laravel 框架搭建的项目代码
|