Posts tagged: ini

Guía de inicio rápido Symfony DI (inyección de dependencia) Tutorial

Por , sábado 14 de agosto 2010 2:21 pm

¿Qué es la inyección de dependencias (DI)?

La inyección de dependencia es una técnica que permite a los objetos débilmente acoplados dentro de una aplicación de software. En general, si un objeto requiere el acceso a la funcionalidad de otro sería una instancia interna que lleva a los sistemas fuertemente acoplados. Mediante la aplicación de la inyección de dependencia que se inyectan los objetos necesarios listos para su uso (a veces también se refirió a la inversión de control - COI). Tomemos el siguiente ejemplo:

  <? Php
 clase DecisionMaker {
     makeDecision función pública (array $ parametros) {
         / / Necesita el adaptador de base de datos
         $ Dp = new DecisionParameters ();
         $ ParameterScore = $ dp-> getScore ($ parametros);
         / * ...  Decisión un poco más de lógica ...  * /
         return ($ parameterScore> 50);
     }
 } 

Este fragmento de código se dice que es fuertemente acoplado con el objeto DecisionParameters. La reescritura de la anterior de una manera imprecisa que tendríamos algo así como ....

  <? Php
 clase DecisionMaker {
     privado $ _dp;
     public function __construct ($ dp) {
         $ This-> _dp = $ dp;
     }
     makeDecision función pública (array $ parametros) {
         $ ParameterScore = $ this-> _dp-> getScore ($ parametros);
         / * ...  Decisión un poco más de lógica ...  * /
         return ($ parameterScore> 50);
     }
 } 

Mientras que obtener los beneficios del código débilmente acoplados estamos añadiendo una complejidad tal que cada vez que un objeto es una instancia que también tenemos que crear instancias de sus dependencias y en pasar estos también. Por ejemplo, esto:

  $ = Elección DecisionMaker nuevo ();
 echo $ opciones-> makeDecision (array ('esfuerzo' => 'bajo', 'return' => 'alta')); 

ahora se convierte en:

  $ Dp = new DecisionParameters ();
 $ Opciones = new DecisionMaker ($ dp);
 echo $ opciones-> makeDecision (array ('esfuerzo' => 'bajo', 'return' => 'alta')); 

Esta situación se vuelve más doloroso que el número de dependencias de una clase es mayor, y lo que si las dependencias se han dependencias? Esto puede muy rápidamente convertirse en una pesadilla para la administración de objetos! Introduzca los contenedores inyección de dependencia (o marcos) ...
Continue reading 'Symfony de inicio rápido DI (inyección de dependencia) Tutorial' »

Enrutar las solicitudes de sitemap.xml al controlador personalizado / acción

Por , miércoles 06 de enero 2010 12:13a.m.

Con el fin de las solicitudes directas de / sitemap.xml a un controlador de la costumbre y la acción en el Zend Framework aplicación sólo tiene que añadir lo siguiente en su fichero de configuración application.ini o alternativa (por ejemplo, yo uso navigation.ini):

 resources.router.routes.sitemap.route = "sitemap.xml"
 resources.router.routes.sitemap.defaults.controller = índice de
 resources.router.routes.sitemap.defaults.action = mapa del sitio

Código de ejemplo para la salida se puede ver mediante la creación de una acción en el controlador apropiado (por ejemplo mi mapa se encuentra en el controlador de índice, la acción mapa):

 < php
 clase IndexController
     se extiende Zend_Controller_Action
 {
     / **
      * Muestra un mapa basado en la configuración Zend_Navigation
      * /
     sitemapAction función pública ()
     {
    	 echo $ this-> view-> de navegación () -> Mapa del sitio ();
    	 $ This-> view-> layout () -> disableLayout ();
    	 $ This-> _helper-> viewRenderer-> setNoRender (true);
     }
 }

Sitemaps pueden rápida y fácilmente generar utilizando Zend_Navigation , un gran tutorial rápido (y en general muy útil para Zend Framework tutoriales) es Zend yesos - la creación dinámica de un menú de un mapa del sitio y el pan rallado .













Panorama Tema por Themocracy

6 visitantes en línea ahora
1 invitados, 5 bots, 0 miembros
Número máximo de visitantes de hoy: 17 am a las 06:54 UTC
Este mes: 17 a 18-08-2011 06:54 am UTC
Este año: 130 en 28-03-2011 22:40 UTC
En total: 130 en 28-03-2011 22:40 UTC