eaperezc / blacksmith Goto Github PK
View Code? Open in Web Editor NEWPHP Command Line Interface helper library
License: MIT License
PHP Command Line Interface helper library
License: MIT License
This is an issue now
Hey Enrique,
For the bootstrap command, when I run
php blacksmith bootstrap
I am getting the following error when running it locally in our dev environment:
PHP Warning: copy(/Users/graham1/Documents/Projects/PHP/blacksmith/vendor/bin/blacksmith): failed to open stream: No such file or directory in /Users/graham1/Documents/Projects/PHP/blacksmith/src/Commands/BootstrapCommand.php on line 46
I think we need to figure out a solid way to differentiate between paths for when we're testing it locally and when we're using it directly in the project.
Or should I wait for you to configure it to packagist so we can always test blacksmith directly in an "external" app via install through composer?
Unit tests are needed for the CmdCommand
class which powers the make:cmd
action. This will require the use of vfsStream
to also test the command properly creates the right subdirectories for commands that specify them as well as the new command file being created.
For better processing of newly created commands, we need to allow commands to be registered from a project configurations file rather than having to add the classes manually in PHP.
We can use any file type, as long as it is simple to read and write from. Personally, I think we should go with a .yml
config file.
Currently, we are doing this to register new commands:
...
// Autoload classes
require_once $autoload_path;
// Get a console instance
$console = new Blacksmith\Console($argv);
// Tell the console which are the commands
// we want available to use
$console->commands = [
Blacksmith\Commands\HelpCommand::class,
Blacksmith\Commands\BootstrapCommand::class,
Blacksmith\Commands\Make\CmdCommand::class,
Blacksmith\Examples\SayHello::class,
Blacksmith\Examples\SayBye::class
];
$console->handle();
When we should really have these in a separate file, like this:
commands:
Blacksmith\Commands\HelpCommand::class,
Blacksmith\Commands\BootstrapCommand::class,
Blacksmith\Commands\Make\CmdCommand::class,
Blacksmith\Examples\SayHello::class,
Blacksmith\Examples\SayBye::class
The naming for the yml
file is obviously not ideal, so we'll need to figure a better namespacing pattern in the near future.
Dependency on Issue #7
After the creation of the configurations file, we will need to update the make:cmd
call to add newly created commands to the config file we have setup.
Acceptance Criteria
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.