Cum se creeaza un plugin pentru Symfony 1.4

Crearea unui plugin pentru Symfony 1.4 este foarte simplu, dupa ce stii pasii. Mi-a luat mult timp pana cand am reusit sa gasesc un tutorial util. In acest articol vom crea  pluginul „sendEmailPlugin” avand un singur modul cu numele „main”

Crearea pluginului se face in 5 pasi:

Pasul 1: Genereaza un plugin nou din terminal

./symfony generate:plugin sendEmailPlugin –module=main

! la sfarsitul numele pluginului trebuie adaugat cuvantul Plugin.

Pasul 2: Permite activarea pluginului in fisierul ProjectConfiguration.class.php

$this->enablePlugins(‘sendEmailPlugin’);

Pasul 3: Adauga un „dispatcher” in fisierul de configurare plugin.

$this->dispatcher->connect( ‘routing.load_configuration’,
array(‘sendEmailPluginRouting’, ‘listenToRoutingLoadConfiguration’));

Pasul 4: Creeaza routele in folderul /lib/routing cu numele sendEmailPluginRouting.class.php

public static function listenToRoutingLoadConfiguration ( sfEvent $event ) {
$routing = $event->getSubject();
//if the user allowing to register default routes

foreach ( array( ‘mainl ) as $module ) {
// if is it enabled in for the current application , see settings.yml
if ( in_array($module, sfConfig::get( ‘sf_enabled_modules’ ) ) ) {
call_user_func(array(‘sendEmailRouting’, sprintf(‘prepend%sRoutes’, ucfirst($module)) ), $routing);
}
}
}

//create send email routes
public static function prependProfileFrontendRoutes ( $routing ) {
$routing->prependRoute(
‘email_send’,
new sfRoute(‘/main/send’, array(‘module’ => ‘main’, ‘action’ => ‘send’)));
}

Pasul 5: Permite activarea modului

In settings.yml aduga numele modulului in enabled_modules:
enabled_modules:  [ …, main, ….]

Surse:
1. How to write a symfony plugin: http://jasonswett.net/blog/how-to-write-a-symfony-plugin/
2. How to develop modules in plugin: http://test.ical.ly/2010/06/10/symfony-workshop-how-to-develop-modules-in-a-plugin/

Anunțuri

Lasă un răspuns

Completează mai jos detaliile tale sau dă clic pe un icon pentru a te autentifica:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare / Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare / Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare / Schimbă )

Fotografie Google+

Comentezi folosind contul tău Google+. Dezautentificare / Schimbă )

Conectare la %s