Recommend this page to a friend! |
![]() |
Info | Documentation | ![]() |
![]() |
![]() |
Reputation | Support forum | Blog | Links |
Ratings | Unique User Downloads | Download Rankings | ||||
Not enough user ratings | Total: 66 | All time: 10,372 This week: 206![]() |
Version | License | PHP version | Categories | |||
packager 1.0.1 | GNU General Publi... | 5 | PHP 5, Design Patterns |
Description | Author | |||
This package implement Facades to call classes statically. Innovation Award
|
|
To install via composer (http://getcomposer.org/), place the following in your composer.json file:
{
"require": {
"barbosa/packager": "dev-master"
}
}
or download package from github.com:
http://github.com/barbosa89/packager
Consider the following folder structure:
/project
/src
MainClass.php
Router.php
TextProcessing.php
Request.php
services.php
/Facades
Router.php
TextProcessing.php
Request.php
The services.php file, returns an array with an alias and the corresponding namespace and the following sintax:
<?php
/
* file: services.php
*/
return [
'router' => Some\Namespace\Router::class,
'text' => Some\Namespace\TextProcessing::class,
'request' => Some\Namespace\Request::class
];
In the MainClass.php file, invoke to AliasLoader::setAliases method:
<?php
namespace Some\Namespace;
use Barbosa\Packager\AliasLoader;
class MainClass
{
public function __construct
{
$aliases = require 'services.php';
AliasLoader::setAliases($aliases);
}
}
The AliasLoader::setAliases method used to record the namespaces and can be called from anywhere in the application.
The facades classes must be created in the folder Facades:
<?php
namespace Some\Namespace\Facade;
use Barbosa\Packager\AccessFacade;
use Barbosa\Packager\FacadeInterface;
class Router extends AccessFacade implements FacadeInterface
{
public static function getServiceName()
{
return 'router';
}
}
For each service or class, it must be created a facade.
Now you can invoke static style services from anywhere in the application, just by using the namespace of the facade. Example:
<?php
namespace Some\Namespace;
use Barbosa\Packager\AliasLoader;
use Some\Namespace\Facades\Request
class MainClass
{
public function __construct
{
$aliases = require 'services.php';
AliasLoader::setAliases($aliases);
}
public function resolveUri($uri)
{
return Request::parseUri($uri);
}
}
Thanks...
![]() |
File | Role | Description | ||
---|---|---|---|---|
![]() |
||||
![]() |
||||
![]() ![]() |
Data | Auxiliary data | ||
![]() ![]() |
Data | Auxiliary data | ||
![]() ![]() |
Data | Auxiliary data | ||
![]() ![]() |
Data | Auxiliary data | ||
![]() ![]() |
Data | Auxiliary data | ||
![]() ![]() |
Lic. | License text | ||
![]() ![]() |
Data | Auxiliary data | ||
![]() ![]() |
Doc. | Documentation |
The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page. |
![]() |
Version Control | Unique User Downloads | Download Rankings | |||||||||||||||
100% |
|
|
Applications that use this package |
If you know an application of this package, send a message to the author to add a link here.