44

Swoole实验室:1-使用Composer构建项目

 5 years ago
source link: https://www.helloweba.net/php/580.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Swoole实验室:1-使用Composer构建项目

2018年09月01日 21:11 helloweba.net 作者:月光光 标签:PHP  Swoole  

Swoole是一个异步通信引擎,它让我们看到了不一样的PHP。本节开始我们会安排系列有关Swoole的实际应用文章,暂时定个名字:Swoole实验室。目的是通过系列文章讲解让大家了解Swoole在我们项目开发中的真正应用场景。

Swoole实验室系列文章关注Swoole的实际应用,不讲解基础知识,因此我们假设读者具备以下知识技能:

  • 了解Web页面基础,不限于HTML5,CSS3,Javascript;
  • 熟悉PHP基础,基本语法,了解MVC,PHP7等;
  • 了解Linux基础,系统基本操作命令,Nginx配置基础;
  • 熟悉 MySQL 、Redis等数据相关操作。

Swoole实验室系列文章计划以实际项目开发,讲解有关Swoole的应用:

  • 使用Swoole发送邮件
  • 使用Swoole批量发送邮件
  • Swoole服务管理
  • 使用Swoole实现即时聊天
  • 使用Swoole实现定时任务
  • Swoole在秒杀与抢购中的应用
  • 使用Swoole控制设备,如重启设备
  • ...

系统运行环境

Swoole实验室系列文章中的DEMO示例代码运行环境是在CentOS7.x,PHP7.2, Swoole2.2 上。

构建项目

进入主题,我们打算构建一个将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": "[email protected]"
        }
    ],
    "require": {}
}

项目中我们会用到MVC架构、自动加载等,我们会用composer安装第三方组件,为了更好的加载这些依赖组件以及有效的结合项目,我们使用PSR-4规范自动加载。

我们在 composer.jsonautoload 字段中增加本项目的autoloader。

{
    "autoload": {
        "psr-4": {"Helloweba\\Swoole\\": "src/App"}
    }
}

这样的话,什么可以使用autoload将命名空间为 Helloweba\Swoole 的src/App/目录下的文件自动加载。

好了,现在我们试着用composer来安装一个我们需要用到的发邮件组件: 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": "[email protected]"
        }
    ],
    "require": {
        "phpmailer/phpmailer": "^6.0"
    },
    "autoload": {
        "psr-4": { 
            "Helloweba\\Swoole\\": "src/App" 
        }
    }
}

现在我们的项目算是已经构建好了,本节只是为Swoole实验室系列文章作铺垫,接下来我们会进入下一节swoole实战:使用Swoole发送邮件,敬请关注。

声明: 本文为原创文章,helloweba.net和作者拥有版权,如需转载,请注明来源于helloweba.net并保留原文链接:https://www.helloweba.net/php/580.html


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK