moszkva/angie
Angie
Laravel-Angular routing manager. Generates angular routing rules from serverside routing rules and services.
https://packagist.org/packages/moszkva/angie
#Features#
- Generates angular routing rules from serverside routing rules
- Generates angular services for basic data transfer.
- Namespace resolving in controller's name.
##Installation##
Installation via composer
{
"require-dev": {
"moszkva/angie": "dev-master"
}
}
##Usage##
After installation you must register AngieServiceProvider in your config/app.php:
'providers' => array(....,
....,
'Moszkva\Angie\AngieServiceProvider'),
'aliases' => array(.....,
.....,
'Angie' => 'Moszkva\Angie\Facades\Angie'));
and you must register routing rules for angie:
// Angie BEGIN
Route::get('angie/get/routing', function()
{
return Angie::renderRouterProviderStatment('<YourAppName>', '/angie/test');
});
Route::get('angie/get/services', function()
{
return Angie::renderServices('<YourAppName>');
});
// Angie END
and you must place these in your index.html after each other angular scripts:
<!--Angie BEGIN-->
<script src="angie/get/routing"></script>
<script src="angie/get/services"></script>
<!--Angie END-->
##How works the angie?##
- Generates angular routeprovider statment. Above example:
<YourAppName>.config(['$routeProvider',
function($routeProvider) {
$routeProvider
.when("/angie/test",{"controller":"AngieTestController","templateUrl":"angie/test"})
.when("/angie/test/create",{"controller":"AngieTestController","templateUrl":"angie/test/create"})
.when("/angie/test/:test",{"controller":"AngieTestController","templateUrl":"angie/test/' + $routeParams.test + '"})
.when("/angie/test/:test/edit",{"controller":"AngieTestController","templateUrl":"angie/test/' + $routeParams.test + '/edit"})
.when("//",{"controller":"TestController","templateUrl":"/"})
.otherwise({"redirectTo":"/angie/test"})}]);
- Generates angular services for basic data transfer:
var <YourAppName>Services= angular.module('<YourAppName>Services', ['ngResource']);
AngieTestControllerService.insert(properties);
AngieTestControllerService.update(properties);
AngieTestControllerService.delete(id);
AngieTestControllerService.show(id);
AngieTestControllerService.list(id, params); // params is optional.
Very important constraint for valid service generation:
- Laravel routing rules by controller must be unique. Example:
Valid configuration (AnotherAngieTestController is subclass of AngieTestController):
Route::resource('angie/test', 'AngieTestController');
Route::resource('angie/test2', 'AnotherAngieTestController');
Invalid configuration:
Route::resource('angie/test', 'AngieTestController');
Route::resource('angie/test2', 'AngieTestController');
Namespace resolving:
Laravel route rule:
Route::resource('/test', 'Test\Angie\TestController')
Controller name in generated routprovider statement:
TestAngieTestController
Service name in generated service statement:
TestAngieTestControllerService
Related Packages
Powerful PHP database abstraction layer (DBAL) with many features for database s...
Laravel Serializable Closure provides an easy and secure way to serialize closur...
Cli error handling for console/command-line PHP applications.