Skip to content
Go back

使用Composer组织PHP应用

过去对于php小应用开发,如果不基于框架,包管理一般都比较粗犷,使用composer来管理,不仅结构清晰,用起来也方便许多。

新建项目composer-example

项目目录下新建composer.json,内容如下:

{
  "require": {
    "monolog/monolog": "^1.25"
  }
}

然后终端执行

composer install

执行完成后,目录结构如图: composer-example1.png

下面开始应用开发,目录结构如图:

composer-example2.png

composer.json 文件内容更新为

{
  "require": {
    "monolog/monolog": "^1.25"
  },
  "autoload": {
    "psr-4": {
      "App\\": "app/"
    }
  }
}

执行:

composer install

相关代码

index.php

<?php

require __DIR__.'/../vendor/autoload.php';

use App\Library\Logs;

Logs::info('test', 'index', ['test' => "logs"]);

对日志模块进行简单封装

Logs.php

<?php

namespace App\Library;

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

/**
 * Class Logs
 * @package App\Library
 */
class Logs
{
    /**
     * 记录日志
     * @param $fileName
     * @param $msg
     * @param array $content
     */
    public static function info($fileName, $msg, array $content)
    {
        $log = new Logger('api-test');
        $log->pushHandler(new StreamHandler(__DIR__.'/../../logs/'.$fileName.'-'.date("Y-m-d").'.log', Logger::DEBUG));
        $log->info($msg, $content);
    }
}

验证结果

终端执行:

php app\index.php

日志文件已经写入了,后续可以基于现有结构做些其他有趣开发。


Share this post on:

Previous Post
PHP执行超时错误解决办法
Next Post
博客迁移到netlify