Minggu, 20 April 2014

Membuat Module Zend Framework 2

Apa yang dimaksud dengan module pada Zend Framework 2? Module adalah koleksi dari kode-kode program dan file-file lain yang mendukung penyelesaian suatu masalah spesifik pada suatu aplikasi. untuk melihat struktur module kita bisa mengclone contoh module ZendSkeletonModule dengan GIT dengan cara masuk ke folder ZendSkeletonApplication\Module :

git clone <span class="skimlinks-unliked">https://github.com/zendframework/ZendSkeletonModule.git</span>

Selain cara diatas dapat juga dilakukan dengan cara membuat direktori-direktori dan file dari module dengan cara membuat sendiri. Buat folder baru pada folder module dengan nama Users setelah itu buat 3 folder dengan nama config,src,dan view didalam folder Users tersebut serta buat 1 file dengan Module.php didalam folder Users. sehingga akan terlihat seperti berikut :

selanjutnya buka file Module.php dengan notepad atau sebagainya dan masukan source code perintah seperti dibawah ini :
 
namespace Users;
class Module
{
public function getConfig()
{
return include __DIR__. '/config/module.config.php';
}
public function getAutoLoaderConfig()
{
return array(
'Zend\Loader\StandardAutoloader'=>array(
'namespaces' => array(
__NAMESPACE__ => __DIR__. '/src/'. __NAMESPACE__,
 )
)
);
}
}

seperti yang tertulis didalam source code diatas yaitu return include __DIR__. '/config/module.config.php'; maka kita harus membuat file module.config.php yang akan disimpan pada folder Users/config dan nantinya akan include dengan file Module.php. Tuliskan source code berikut ini pada module.config.php :

return array(
'controllers'=>array(
'invokables'=>array(
'Users\Controller\Index'=>'Users\Controller\IndexController',
),
),
'router'=>array(
'routes'=>array(
'users'=>array(
'type'=>'Literal',
'options'=>array(
//change this to something specific to your module
'route'=>'/users',
'defaults'=>array(
//change this value to reflect the namespace in which
//the controllers for your module are found
'__NAMESPACE__'=>'Users\Controller',
'controller'=>'Index',
'action'=>'index',
),
),
'may_terminate'=>true,
'child_routes'=>array(
//this route is a sane default when developing a module;
//as you solidify the routes for your module, however,
//you may want to remove it and replace it with more
//specific routes.
'default'=>array(
'type'=>'Segment',
'options'=>array(
'route'=>'/[:controller[/:action]]',
'constraints'=>array(
'controller'=>'[a-zA-Z][a-zA-Z0-9_-]*',
'action'=>'[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults'=>array(
),
),
),
),
),
),
),
'view_manager'=>array(
'template_path_stack'=>array('users'=>__DIR__.'/../view',
),
),
)
 
untuk tahap selanjutnya kita akan membuat controller dan view untuk module users, langkah untuk membuatnya yaitu :
  1. buatlah folder Users / Controller pada folder src sehingga terlihat seperti gambar dibawah :
     
  2. Buatlah file baru dengan nama IndexController.php dan disimpan pada folder src/Users/Controller/
  3. Tuliskan Source Code berikut didalam file IndexController.php :

    namespace Users\Controller;
    use Zend\Mvc\Controller\AbstractActionController;
    use Zend\View\Model\ViewModel;
    class IndexController extends AbstractActionController
    {
    public function indexAction()
    {
    $view = new ViewModel();
    return $view;
    }
    public function registerAction()
    {
    $view = new ViewModel();
    $view->setTemplate('users/index/new-user');

    return $view;
    }
    public function loginAction()
    {
    $view = new ViewModel();
    $view->setTemplate('users/index/login');
    return $view;
    }
    }
  4. buatlah folder users/index untuk difolder view seperti gambar berikut :

  5. setelah folder dibuat, anda buat 3 file yaitu index.phtml, login.phtml, dan new-user.phtml disimpan pada folder view/users/index/
  6. buka file index.phtml yang disimpan pada folder view/users/index/ dan tuliskan source code berikut ini :

    <h1>Welcome to Users Module</h1>
    <a href="/users/index/login">Login</a> | <a href="/users/
    index/register">New User Registration</a>
  7. buka file login.phtml yang disimpan pada folder view/users/index/ dan tuliskan source code berikut ini :

    <h2> Login </h2>
    <p> This page will hold the content for the login form </p>
    <a href="/users"><< Back to Home</a>
  8. buka file new-user.phtml yang disimpan pada folder view/users/index/ dan tuliskan source code berikut ini :

    <h2> New User Registration </h2>
    <p> This page will hold the content for the registration
    form </p>
    <a href="/users"><< Back to Home</a>
jika telah selesai dengan controller dan view maka tahap terakhir adalah mengganti atau menambahkan untuk didaftarkan pada application.config.php agar module dapat berjalan ketika dipanggil. file tersebut terletak pada /zendskeletonapplication/config seperti yang terlihat pada gambar dibawah ini :


buka file application.config,php tersebut dan tambahkan Users sebagai list module yang aktif seperti source code berikut ini :

'modules' => array(
'Application',
'Users',
),


kemudian test module menggunakan web browser dan ketikan alamat berikut http://localhost/zendskeletonapplication/public/users maka akab terlihat seperti gambar dibawah ini :

maka untuk membuat module telah selesai. :D selamat mencoba semuanya..
untuk bentuk PDF bisa download disini.

Tidak ada komentar:

Posting Komentar