🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 系统运行环境 Swoole实验室系列文章中的DEMO示例代码运行环境是在CentOS7.x,PHP7.x,Swoole2.0上。 ## 构建项目 进入主题,我们打算构建一个将SwooleApp的项目,使用Composer来构建。 首先创建项目目录结构: ``` swooleApp |----src |----App |----public ``` 很显然,src/目录是我们的源代码程序文件目录,public/目录是对外公共目录,我们允许web可以直接访问到这个目录。 进入到swooleApp项目目录下,打开命令行工具,运行`composer init`初始化项目,根据提示依次输入项目信息,内容根据情况自定义,最后会在项目目录下生成一个composer.json文件,打开这个文件,它应该长这样: ``` { "name": "helloweba/swoole-app", "description": "A swoole app.", "type": "project", "authors": [ { "name": "helloweba", "email": "abc@qq.com" } ], "require": {} } ``` 项目中我们会用到MVC架构、自动加载等,我们会用composer安装第三方组件,为了更好的加载这些依赖组件以及有效的结合项目,我们使用PSR-4规范自动加载。 我们在composer.json的`autoload`字段中增加本项目的autoloader。 ``` { "autoload": { "psr-4": {"Helloweba\\Swoole\\": "src/App"} } } ``` 这样的话,什么可以使用autoload将命名空间为`Helloweba\Swoole的src/App/`目录下的文件自动加载。 好了,现在我们试着用composer来安装一个我们需要用到的发邮件组件:[phpmailer](https://packagist.org/packages/phpmailer/phpmailer)。 运行命令:`composer require phpmailer/phpmailer` 执行完毕后,你会发现项目目录下多了个vendor/目录,对,没错,这个目录就是需要自动加载的依赖组件目录,是不是类似前端的npm安装依赖后的node_modules/目录哈。 好了,现在你打开`composer.json`,完整的结构应该是这样的: ``` { "name": "helloweba/swoole-app", "description": "A swoole app.", "type": "project", "authors": [ { "name": "helloweba", "email": "abc@qq.com" } ], "require": { "phpmailer/phpmailer": "^6.0" }, "autoload": { "psr-4": { "Helloweba\\Swoole\\": "src/App" } } } ``` 现在我们的项目算是已经构建好了,本节只是为Swoole实验室系列文章作铺垫,接下来我们会进入下一节swoole实战:使用Swoole发送邮件。