zanphp/autoload

此包最新版本(dev-master)没有提供许可证信息。

安装: 7

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 7

分支: 0

公开问题: 0

类型:composer-plugin

dev-master / 1.0.x-dev 2017-07-19 05:39 UTC

This package is not auto-updated.

Last update: 2024-09-29 03:58:08 UTC


README

composer 插件,模拟静态初始化

<?php

interface StaticInitializer
{
    public static function __static();
}

!! 注意,需要进行静态初始化的类必须通过 composer 加载。

类加载时,public static function __static() 方法会自动执行,必须无参数,必须为静态方法

自行 require、include 功能失效;

使用

在 composer.json 中引入 zanphp/autoload 包

{
  "require": {
    "zanphp/autoload": "dev-master"
  }
}

可选接口实现

<?php

namespace  ZanPHP\Autoload\Tests;

class StaticTest
{
    public static function __static()
    {
        echo __CLASS__ . " initialized\n";
    }
}

或者直接实现接口;

<?php

namespace  ZanPHP\Autoload\Tests;

use Composer\Autoload\StaticInitializer;

class StaticInterfaceTest implements StaticInitializer
{
    public static function __static()
    {
        echo __CLASS__ . " initialized\n";
    }
}

测试

<?php

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


class_exists(\ZanPHP\Autoload\Tests\StaticTest::class, true);

class_exists(\ZanPHP\Autoload\Tests\StaticInterfaceTest::class, true);

输出

ZanPHP\Autoload\Tests\StaticTest initialized
ZanPHP\Autoload\Tests\StaticInterfaceTest initialized