florianwolters / component-util-command
The Command behavioral design pattern as a PHP component.
Requires
- php: >=5.3
This package is not auto-updated.
Last update: 2024-11-18 15:18:51 UTC
README
FlorianWolters\Component\Util\Command is a simple-to-use PHP component that provides the Command behavioral design pattern.
Table of Contents (ToC)
- Introduction
- Features
- Requirements
- Usage
- Installation
- As A Dependency On Your Component
- Development Environment
- Contributing
- Credits
- License
Introduction
Command is a behavioral design pattern and defined as follows:
"Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations."
-- E. Gamma, et al. Design Patterns: Elements of Reusable Object-Oriented Software. Westford: Addison-Wesley, 1995.
Features
- Follows the naming conventions for the Command design pattern
- A command offers a member method
execute()
. - A sequence of commands can be executed with a
MacroCommand
, which implements the Composite structural design pattern.
- A command offers a member method
- Artifacts tested with both static and dynamic test procedures:
- Dynamic component tests (unit tests) implemented using PHPUnit.
- Static code analysis performed using the following tools:
- PHP_CodeSniffer: Style Checker
- PHP Mess Detector (PHPMD): Code Analyzer
- phpcpd: Copy/Paste Detector (CPD)
- phpdcd: Dead Code Detector (DCD)
- Installable via Composer or PEAR installer:
- Provides a Packagist package which can be installed using the dependency manager Composer.
- Provides a PEAR package which can be installed using the package manager PEAR installer.
- Click here for the PEAR channel.
- Provides a complete Application Programming Interface (API) documentation generated with the documentation generator phpDocumentor.
- Click here for the current API documentation.
- Follows the PSR-0 requirements for autoloader interoperability.
- Follows the PSR-1 basic coding style guide.
- Follows the PSR-2 coding style guide.
- Follows the PSR-5 PHPDoc standard.
- Follows the Semantic Versioning Specification (SemVer) 2.0.0-rc.1.
Requirements
- PHP >= 5.3
Usage
The best documentation for FlorianWolters\Component\Util\Command are the unit tests, which are shipped in the package. You will find them installed into your PEAR repository, which on Linux systems is normally /usr/share/php/test
.
Installation
Local Installation
FlorianWolters\Component\Util\Command should be installed using the dependency manager Composer. Composer can be installed with PHP.
php -r "eval('?>'.file_get_contents('http://getcomposer.org/installer'));"
This will just check a few PHP settings and then download
composer.phar
to your working directory. This file is the Composer binary. It is a PHAR (PHP archive), which is an archive format for PHP which can be run on the command line, amongst other things.Next, run the
install
command to resolve and download dependencies:
php composer.phar install
System-Wide Installation
FlorianWolters\Component\Util\Command should be installed using the PEAR installer. This installer is the PHP community's de-facto standard for installing PHP components.
pear channel-discover pear.florianwolters.de
pear install --alldeps fw/Command
As A Dependency On Your Component
Composer
If you are creating a component that relies on FlorianWolters\Component\Util\Command, please make sure that you add FlorianWolters\Component\Util\Command to your component's composer.json
file:
{ "require": { "florianwolters/component-util-command": "0.1.*" } }
PEAR
If you are creating a component that relies on FlorianWolters\Component\Util\Command, please make sure that you add FlorianWolters\Component\Util\Command to your component's package.xml
file:
<dependencies> <required> <package> <name>Command</name> <channel>pear.florianwolters.de</channel> <min>0.1.0</min> <max>0.1.99</max> </package> </required> </dependencies>
Development Environment
If you want to patch or enhance this component, you will need to create a suitable development environment. The easiest way to do that is to install phix4componentdev:
# phix4componentdev
pear channel-discover pear.phix-project.org
pear install phix/phix4componentdev
You can then clone the Git repository:
# PHP-Component-Util-Command
git clone http://github.com/FlorianWolters/PHP-Component-Util-Command
Then, install a local copy of this component's dependencies to complete the development environment:
# build vendor/ folder
phing build-vendor
To make life easier for you, common tasks (such as running unit tests, generating code review analytics, and creating the PEAR package) have been automated using phing. You'll find the automated steps inside the build.xml
file that ships with the component.
Run the command phing
in the component's top-level folder to see the full list of available automated tasks.
Contributing
See CONTRIBUTING.md
.
Credits
License
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this program. If not, see http://gnu.org/licenses/lgpl.txt.