yj-php-utils/class-finder

1.0.0 2021-02-10 14:17 UTC

This package is auto-updated.

Last update: 2024-09-13 08:08:13 UTC


README

用途是什么?

您是否需要以简单的方式获取特定命名空间中的类?🚀
查看此包。

需求

  • 使用composer(用于在autoload composer.json中搜索)
  • PSR-4实现
  • PHP 7.3 >=

安装

composer require yj-php-utils/class-finder

使用方法

// Your basePath project. 
$basePath = defined('BASE_PATH') ? BASEPATH : '/var/www/html/your_project_base_path';

// List all classes in App\Http\Controllers namespace
$classes = \ClassFinder\Finder::findClassesInNamespace($basePath, 'App\Http\Controllers')->get();

// List all classes in '.' directory
$classes = \ClassFinder\Finder::findClassesInPath($basePath, __DIR__)->get();

// With filters
$classes = 
    \ClassFinder\Finder::findClassesInNamespace($basePath, 'App\Http\Controllers')
    ->extends('\App\Http\Controllers\Controller')
    ->implements('\App\Http\Controllers\ApiInterface')
    ->where(function(string $namespace){ // get all classes that has index() method
        return method_exists($namespace, 'index');
    })
    ->get();