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.

Maintainers

Package info

github.com/bearsunday/BEAR.AppMeta

pkg:composer/bear/app-meta

Transparency log

Statistics

Installs: 649 636

Dependents: 13

Suggesters: 0

Stars: 1

Open Issues: 0

1.11.0 2026-07-10 09:09 UTC

README

Scrutinizer Code Quality Code Coverage Build Status

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, and tmpDir with 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
}