zero-to-prod / package-helper
Helpers for a Composer Package
Fund package maintenance!
Github
Requires
- php: >=7.1
Requires (Dev)
README
Contents
Introduction
Helpers for a composer package.
Requirements
- PHP 7.1 or higher.
Installation
Install Zerotoprod\PackageHelper
via Composer:
composer require zero-to-prod/package-helper
This will add the package to your project’s dependencies and create an autoloader entry for it.
Usage
Publish files in your package directory.
use Zerotoprod\OmdbModels\PackageHelper; PackageHelper::publish( $from, $to, PackageHelper::findNamespaceMapping($psr_4, $to), static function(string $from, string $to){ echo "Copied: $from to $to" . PHP_EOL; } );
Example
Integrate this into a composer package.
Update composer.json
:
{ "bin": [ "bin/package-file" ] }
Create a new file: bin/package-file
#!/usr/bin/env php <?php require getcwd() . '/vendor/autoload.php'; use Zerotoprod\PackageHelper\PackageHelper; if ($argc !== 2) { die("Usage: <targetDir>\n"); } $from = __DIR__ . '/../src'; if (!is_dir($from)) { throw new RuntimeException("Source directory '$from' not found."); } $composer_json_file_path = getcwd() . '/composer.json'; if (!is_file($composer_json_file_path)) { throw new RuntimeException("composer.json not found."); } $composer_json_data = json_decode(file_get_contents($composer_json_file_path), true); $psr_4 = $composer_json_data['autoload']['psr-4'] ?? null; if (!$psr_4) { throw new RuntimeException('PSR-4 autoload section missing in composer.json.'); } $to = rtrim($argv[1], '/'); PackageHelper::publish( $from, $to, PackageHelper::determineNamespace($psr_4, $to), static function(string $from, string $to){ echo "Copied: $from to $to" . PHP_EOL; } );
Contributing
Contributions, issues, and feature requests are welcome! Feel free to check the issues page if you want to contribute.
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Commit changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature-branch
). - Create a new Pull Request.