Welcome to Abdul Malik Ikhsan's Blog

Zend Framework 2 : instalasi dan membuat module

Posted in Zend Framework 2 by samsonasik on March 6, 2012

3 Maret 2012, Zend merilis Zend Framework Versi 2.0.0beta3. Sebuah perubahan besar dari ZF versi 1. Selain dari sisi pengkodean yang lebih solid, performance juga lebih baik. Zend Framework 2 mengharuskan penggunaan PHP versi 5.3.

Untuk meng-install Zend Framework 2, yang kita butuhkan adalah GIT version Control untuk meng-clone ZendSkeletonApplication sebagai pondasi awal aplikasi. Cara clone :

git clone --recursive git://github.com/zendframework/ZendSkeletonApplication.git

Setelah diclone, akan tampil struktur direktori framework seperti berikut ini :

Kalau sudah, kita bisa akses : http://localhost/ZendSkeletonApplication/public , dan hooorayyy, akan tampil sebagai berikut :

Selamat, Anda berhasil menginstall Zend Framework 2.

Okey, langkah selanjutnya adalah belajar membuat module. Apa yang dimaksud module di Zend Framework 2 ? Module adalah koleksi dari kode-kode program dan file-file lain yang mendukung penyelesaian suatu masalah spesifik pada suatu aplikasi. Siip, kita coba deh buat satu module. Untuk melihat struktur module sebagai contoh, kita bisa clone contoh module ZendSkeletonModule dengan GIT dengan cara masuk ke folder zf2project\module :

git clone https://github.com/zendframework/ZendSkeletonModule.git

Kalau sudah, kita bisa lihat struktur dari module kurang lebih seperti berikut :

Keterangan gambar :
1. folder src digunakan untuk menyimpan file-file PHP class
2. folder view digunakan untuk menyimpan file-file view ( html )
Dari Skeleton module yang telah kita download, kita coba rename saja module skeleton tersebut dengan nama lain sesuai yang kita inginkan, misalkan Test , sehingga lengkapnya menjadi seperti berikut :

Kalau sudah, tinggal disetting deh :p.
1. Daftarkan dulu di zf2project\config\application.config.php

<?php
return array(
    'modules' => array(
        'Application',
        'Test'
     ),
    'module_listener_options' => array(
        'config_cache_enabled' => false,
        'cache_dir'            => 'data/cache',
        'module_paths' => array(
            './module',
            './vendor',
         ),
    ),
);

2. setting autoload_classmap.php

<?php
return array(
    'Test\Controller\IndexController' => __DIR__ . '/src/Test/Controller/IndexController.php',
    'Test\Module'                     => __DIR__ . '/Module.php',
);

3. setting Module.php

<?php

namespace Test;

use Zend\Module\Consumer\AutoloaderProvider;

class Module implements AutoloaderProvider
{
    public function getAutoloaderConfig()
    {
        return array(
            'Zend\Loader\ClassMapAutoloader' => array(
                __DIR__ . '/autoload_classmap.php',
            ),            
            'Zend\Loader\StandardAutoloader' => array(
                'namespaces' => array(
                __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                ),
            ),
        ); 
    }
  
    public function getConfig()
    {
       return include __DIR__ . '/config/module.config.php';
    }
}

4. setting module config ( Test\config\module.config.php )

<?php
return array(
    'di' => array(
        'instance' => array(
            'alias' => array(                
                'test' => 'Test\Controller\IndexController'
            ),
            
            'Zend\View\Resolver\TemplatePathStack' => array(
                'parameters' => array(
                'paths' => array(
                    'testpath' => __DIR__ . '/../view',
                ),
                ),  
            ),
            
        ),
    ),
);

Settingan selesai, heuheu….
Habis itu, kita bisa buat deh Controller kita di folder src\Test\Controller :

<?php

namespace Test\Controller;

use Zend\Mvc\Controller\ActionController,
    Zend\View\Model\ViewModel;

class IndexController extends ActionController
{
    public function indexAction()
    {
        $view  = new ViewModel();
        $view->hello = 'haloo apa kabar ? ';
        
        return $view;
    }
}

Let’s show in the view ( Test\view\test\index.phtml )

Greeting : <?php echo $hello; ?>

Done !!!

Image :

Referensi :
1. http://mwop.net/blog/267-Getting-started-writing-ZF2-modules
2. http://akrabat.com/getting-started-with-zend-framework-2/

Advertisements

22 Responses

Subscribe to comments with RSS.

  1. sharty said, on March 7, 2012 at 11:32 am

    yey.. akhirnya mas nulis lagi
    meski aku @.@ baca puisinya.. ๐Ÿ˜›

  2. […] Isi dari classmap Autoloader sebagai berikut ( contoh bisa juga dilihat di tutorial #zf2 yang pertama : […]

  3. Sapatu Butut said, on May 28, 2012 at 3:03 pm

    ini nih yang di tunggu from the very basic of ZF2.. ๐Ÿ˜€

    klo pakai windows gmn nih mas samson??
    tutorial ini pake linux ya?

  4. zonabangka said, on June 28, 2012 at 6:59 pm

    Fatal error: Uncaught exception ‘Zend\ModuleManager\Exception\RuntimeException’ with message ‘Module (Application) could not be initialized.’ in C:\xampp\htdocs\ZendFramework-2\library\Zend\ModuleManager\ModuleManager.php:118 Stack trace: #0 C:\xampp\htdocs\ZendFramework-2\library\Zend\ModuleManager\ModuleManager.php(85): Zend\ModuleManager\ModuleManager->loadModule(‘Application’) #1 C:\xampp\htdocs\yossi\public\index.php(37): Zend\ModuleManager\ModuleManager->loadModules() #2 {main} thrown in C:\xampp\htdocs\ZendFramework-2\library\Zend\ModuleManager\ModuleManager.php on line 118

    Pak ngerti masalah itu nggak, setelah meniru sesuai aturan totorial bapak diatas
    pas dieksekusi hasilnya gitu heeehee

    bantuan ya pak ๐Ÿ˜€

  5. samsonasik said, on July 3, 2012 at 2:04 pm

    mas pakai versi Beta berapa ? kalau Beta 4, coba class Modulenya cukup seperti berikut :
    class Module
    {
    public function getConfig()
    {
    return include __DIR__ . '/config/module.config.php';
    }

    public function getAutoloaderConfig()
    {
    return array(
    'Zend\Loader\ClassMapAutoloader' => array(
    __DIR__ . '/autoload_classmap.php',
    ),

    'Zend\Loader\StandardAutoloader' => array(
    'namespaces' => array(
    __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
    ),
    ),
    );
    }
    }

    dan application.config.php nya seperti berikut :

    return array(
    'modules' => array(
    'Application',
    'Test'
    ),
    'module_listener_options' => array(
    'config_glob_paths' => array(
    'config/autoload/{,*.}{global,local}.php',
    ),
    'config_cache_enabled' => false,
    'cache_dir' => 'data/cache',
    'module_paths' => array(
    './module',
    './vendor',
    ),
    ),
    'service_manager' => array(
    'use_defaults' => true,
    'factories' => array(
    ),
    ),
    );

  6. PeTreuQ said, on September 8, 2012 at 9:09 pm

    Nice info ny gan ๐Ÿ˜€
    Like this…

  7. sakuragi said, on October 13, 2012 at 11:00 am

    Fatal error: Uncaught exception ‘RuntimeException’ with message ‘Unable to load ZF2. Run `php composer.phar install` or define a ZF2_PATH environment variable.’ in C:\xampp\htdocs\sikda\init_autoloader.php:48 Stack trace: #0 C:\xampp\htdocs\sikda\public\index.php(9): include() #1 {main} thrown in C:\xampp\htdocs\sikda\init_autoloader.php on line 48

    slh dmn-ny y????

  8. Dani Gojay said, on April 24, 2013 at 5:44 pm

    Halo om, mau tanya neh,,apa perbedaan mendasar zf versi 1.x sama zf 2.x seh ??
    hehe..

    matur nuwun..

  9. gustriana said, on August 19, 2013 at 10:16 am

    A 404 error occurred
    Page not found.
    The requested URL could not be matched by routing.

    No Exception available

    maaf masih newbie mohon bantuannya

  10. johan said, on February 12, 2014 at 5:21 pm

    Fatal error: Interface ‘Zend\Module\Consumer\AutoloaderProvider’ not found in F:\xampp\htdocs\progressdev\module\Test\Module.php on line 8

    kenapa ya samsonasik?

  11. BehRang said, on July 22, 2014 at 3:57 pm

    Hi,
    This error coming up:

    A 404 error occurred
    Page not found.

    The requested URL could not be matched by routing.
    No Exception available

  12. idris said, on August 27, 2015 at 2:35 pm

    mas mau nanya kan saya nama servernya pake 127.0.0.1 kalau pake localhost malah error, terus saya mau buat action controller di indexController.php ko jadi error ya???

  13. sss said, on September 8, 2015 at 5:06 pm

    gak jalan, error 404.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: