bear / app-meta
AppMeta is a utility class that manages application metadata such as directory paths and resource information. It provides easy access to application directories (appDir, logDir, tmpDir) and resource metadata via a generator.
1.11.0
2026-07-10 09:09 UTC
Requires
- php: ^8.1
- bear/resource: ^1.0
- koriym/psr4list: ^1.0.2
Requires (Dev)
- bamarni/composer-bin-plugin: ^1.4
- phpunit/phpunit: ^9.6
README
BEAR.AppMeta is a lightweight library for managing application metadata in PHP. It provides a simple way to access application directory paths and resource metadata, making it easier to organize and retrieve essential information about your application.
Features
- Application Metadata Management: Retrieve directory paths such as
appDir,logDir, andtmpDirwith ease. - Resource Metadata Generator: Use a generator to efficiently fetch metadata for resources in your application.
Usage
Accessing Application Metadata
The Meta class provides access to application metadata, including directory paths:
use BEAR\AppMeta\Meta; // Initialize with your application's namespace $appMeta = new Meta('MyVendor\HelloWorld'); // Access metadata properties echo $appMeta->name; // MyVendor\HelloWorld echo $appMeta->appDir; // /path/to/project echo $appMeta->logDir; // /path/to/project/var/log/{context} echo $appMeta->tmpDir; // /path/to/project/var/tmp/{context} // Optional path overrides (null keeps the defaults above): // new Meta($name, $context, $appDir, tmpDir: '/var/tmp/my-app', logDir: '/var/log/my-app'); // Environment reading belongs to the application, not Meta.
Fetching Resource Metadata
Use the getGenerator() method to retrieve metadata for resources. This method returns a generator, making it memory-efficient for large applications.
// Fetch metadata for all resources foreach ($appMeta->getGenerator('*') as $resourceMeta) { var_dump($resourceMeta->uriPath); // app://self/one var_dump($resourceMeta->class); // FakeVendor\HelloWorld\Resource\App\One var_dump($resourceMeta->file); // /path/to/src/Resource/App/One.php } // Fetch metadata for resources in the 'app' namespace foreach ($appMeta->getGenerator('app') as $resourceMeta) { var_dump($resourceMeta->uriPath); // /one var_dump($resourceMeta->class); // FakeVendor\HelloWorld\Resource\App\One var_dump($resourceMeta->file); // /path/to/src/Resource/App/One.php }