Tuesday, March 3, 2015

Symfony 2 hari 16: Sonata admin bunlde

Artikel ini dirunut berdasarkan Jobeet Tutorial, yang dibuat oleh Fabien Potencier, untuk Symfony 1.4.

Sonata admin bundle

Kabar baik untuk kalian pencinta Symfony Framework adalah kalian tidak perlu membuat aplikasi khusus untuk admin. Di Symfony sudah ada plugin atau bundle yang dapat melakukan hal itu, yap Sonata admin bundle sangat membantumu untuk hal tersebut.

Install Sonata


Dimulai dengan menambahkan require path di composer.json. Jalankan perintah ini melalui terminal:

php composer.phar require sonata-project/admin-bundle
Kemudian jika muncul pertanyaan seperti ini, tinggal ketikan tanda '*' untuk mendapatkan versi terbarunya, lalu enter:
 
Please provide a version constraint for the sonata-project/admin-bundle requirement: *
Ok, setelah proses install Sonata-nya selesai, berikutnya kita install SonataORMDoctrine bundle, caranya jalankan perintah berikut melalui terminal:
php composer.phar require sonata-project/doctrine-orm-admin-bundle

Berikutnya kita harus mendeklarasikan bundle Sonata di AppKernel.php

app/AppKernel.php

// ...
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Sonata\AdminBundle\SonataAdminBundle(),
            new Sonata\BlockBundle\SonataBlockBundle(),
            new Sonata\jQueryBundle\SonatajQueryBundle(),
            new Sonata\DoctrineORMAdminBundle\SonataDoctrineORMAdminBundle(),
            new Knp\Bundle\MenuBundle\KnpMenuBundle(),
        );
    }
// ...
Begitu juga di configurasi app-nya tambahkan baris berikut:
app/config/config.yml
# ...
sonata_admin:
    title: Jobeet Admin
sonata_block:
    default_contexts: [cms]
    blocks:
        sonata.admin.block.admin_list:
            contexts:   [admin]
        sonata.block.service.text:
        sonata.block.service.action:
        sonata.block.service.rss:
Cari baris 'translator' jika masih dikomen hilangkan komennya:


app/config/config.yml
# ...
framework:
    # ...
    translator: { fallback: %locale%}
    # ...
#...
Agar aplikasi dapat bekerja kita harus menambah routing admin bundle ke routing di aplikasi kita:
app/config/routing.yml
admin:
    resource: '@SonataAdminBundle/Resources/config/routing/sonata_admin.xml'
    prefix: /admin
_sonata_admin:
    resource: .
    type: sonata_admin
    prefix: /admin
# ...
Sekarang saatnya kita menginstall asset dari bundlenya, jalankan perintah berikut melalui terminal:
php app/console assets:install web --symlink
Ok, bersihkan cachenya dan kamu sudah bisa mengaksesnya sekarang:
php app/console cache:clear --env=dev
php app/console cache:clear --env=prod

CRUD admin controller

Agar kita bisa mengelola data-data yang ada di aplikasi, kita perlu membuat file CRUD untuk admin. Buatlah file controller admin untuk Category dan Job:


src/Ibw/JobeetBundle/Controller/CategoryAdminController.php

namespace Ibw\JobeetBundle\Controller;
use Sonata\AdminBundle\Controller\CRUDController as Controller;
class CategoryAdminController extends Controller
{
    // Your code will be here
}
==================================
src/Ibw/JobeetBundle/Controller/JobAdminController.php
namespace Ibw\JobeetBundle\Controller;
use Sonata\AdminBundle\Controller\CRUDController as Controller;
class JobAdminController extends Controller
{
    // Your code will be here
}

No comments:

Post a Comment