mwsimple/admin-crud-silex

Admin Crud Silex

dev-master / 2.2.x-dev 2013-06-15 02:14 UTC

This package is auto-updated.

Last update: 2024-09-10 11:33:22 UTC


README

目前处于开发中。

安装

使用 composer

将以下行添加到您的 composer.json 文件中

Silex 2.2

使用 fabpot/Silex-Skeleton

"require": {
  ...
  "mwsimple/admin-crud-silex": "2.2.*@dev"
}

执行

php composer.phar update "mwsimple/admin-crud-orm-silex"

依赖

使用 doctrine

用法

将其添加到 src/Controller/PostController.php 类中

<?php
namespace Controller;

use MWSimple\Silex\AdminCrudSilex\CrudController;

class PostController extends CrudController
{
}

将其添加到 src/app.php 类中

use Silex\Application;
...
use Silex\Provider\SessionServiceProvider;
use Silex\Provider\FormServiceProvider;
use Silex\Provider\TranslationServiceProvider;
use Controller\PostController;
...
$app->register(new SessionServiceProvider());
$app->register(new FormServiceProvider());
$app->register(new TranslationServiceProvider(), array(
    'locale' => 'en',
    'translation.class_path' =>  __DIR__ . '/../vendor/symfony/src',
    'translator.messages' => array()
));
...
//CONTROLLER POST
$app['post.controller'] = $app->share(function() use ($app) {
    $options = array(
    	'dirTemplate' => 'Post/',
    	'table' => 'post'
    	'route' => 'post'
    );
    return new PostController($app,$options);
});

将其添加到 src/controllers.php 类中

...
use Symfony\Component\HttpFoundation\Request;

Request::enableHttpMethodParameterOverride();
...
...
//CONTROLLER POST
$app->get('/post', "post.controller:indexAction")->bind('post');
$app->post('/post/', "post.controller:createAction")->bind('post_create');
$app->get('/post/new', "post.controller:newAction")->bind('post_new');
$app->get('/post/{id}', "post.controller:showAction")->bind('post_show');
$app->get('/post/{id}/edit', "post.controller:editAction")->bind('post_edit');
$app->post('/post/{id}', "post.controller:updateAction")->bind('post_update')
  ->method('PUT|POST')
;
$app->delete('/post/{id}', "post.controller:deleteAction")->bind('post_delete')
  ->method('DELETE')
;

将其添加到 src/Controller/ConfigController.php 类中

<?php
namespace Controller;

abstract class ConfigController
{
    static function createForm($table, $app, $entity)
    {
        switch ($table) {
//post
            case 'post':
                $form = $app['form.factory']->createBuilder('form', $entity)
                    ->add('title')
                    ->getForm()
                ;
                break;
            default:
                $form = null;
                break;
        }
        return $form;
    }

    static function createList($table)
    {
        switch ($table) {
//post
            case 'post':
                $list = array('id','title');
                break;
            default:
                $list = array('id');
                break;
        }
        return $list;
    }

    static function createShow($table)
    {
        switch ($table) {
//post
            case 'post':
                $show = array('id','title','description', 'content');
                break;
            default:
                $show = array('id');
                break;
        }
        return $show;
    }
}

将文件夹 AdminCrudSilex/Resources/public/admin-crud-silex/* 的内容复制到 web/admin-crud-silex/

将文件夹 AdminCrudSilex/Resources/crudViews/* 的内容复制到 templates/crudViews/

作者

Gonzalo Alonso - gonkpo@gmail.com