Introduction to Zend Framework

 Learning Zend Framework

appendix

 Zend Framework Reference


  •  Zend_Gdata
  •  Zend_Http
  •  Zend_InfoCard
  •  Zend_Json
  •  Zend_Layout
  •  Zend_Ldap
  •  Zend_Loader
  •  Zend_Locale
  •  Zend_Log
  •  Zend_Mail
  •  Zend_Markup
  •  Zend_Measure
  •  Zend_Memory
  •  Zend_Mime
  •  Zend_Navigation
  •  Zend_Oauth
  •  Zend_OpenId
  •  Zend_Paginator
  •  Zend_Pdf
  •  Zend_ProgressBar
  •  Zend_Queue
  •  Zend_Reflection
  •  Zend_Registry
  •  Zend_Rest

  •  Zend_Search_Lucene
  •  Zend_Serializer
  •  Zend_Server
  •  Zend_Service
  •  Zend_Session
  •  Zend_Soap
  •  Zend_Tag
  •  Zend_Test
  •  Zend_Text
  •  Zend_TimeSync
  •  Zend_Tool
  •  Zend_Tool_Framework
  •  Zend_Tool_Project
  •  Zend_Translate
  •  Zend_Uri
  •  Zend_Validate
  •  Zend_Version
  •  Zend_View
  •  Zend_Wildfire
  •  Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Translation 96.1% Update 2010-11-28 - Revision 23448 - Version ZF 1.11.x

    56.5. Anpassen von Zend_Queue

    56.5.1. Erstellung eigener Adapter

    Zend_Queue akzeptiert jeden Adapter der Zend_Queue_Adapter_AdapterAbstract implementiert. Man kann eigene Adapter erstellen indem einer der existierenden Adapter, oder die abstrakte Klasse Zend_Queue_Adapter_AdapterAbstract erweitert wird. Es wird empfohlen Zend_Queue_Adapter_Array anzuschauen da dieser Adapter in seiner Konzeption der einfachste ist.

    class Custom_DbForUpdate extends Zend_Queue_Adapter_Db
    {
        
    /**
         * @see Code in tests/Zend/Queue/Custom/DbForUpdate.php
         *
         * Custom_DbForUpdate verwendet SELECT ... FOR UPDATE um seine Zeilen zu
         * finden. Das ist besser um die gewünschten Zeilen zu erstellen als der
         * existierende Code.
         *
         * Trotzdem haben nicht alle Datenbanken SELECT ... FOR UPDATE als Feature.
         *
         * Notiz: Das wurde später konvertiert um eine Option für
         * Zend_Queue_Adapter_Db zu sein.
         *
         * Dieser Code ist trotzdem ein gutes Beispiel.
         */
    }

    $options = array(
        
    'name'          => 'queue1',
        
    'driverOptions' => array(
            
    'host'      => '127.0.0.1',
            
    'port'      => '3306',
            
    'username'  => 'queue',
            
    'password'  => 'queue',
            
    'dbname'    => 'queue',
            
    'type'      => 'pdo_mysql'
        
    )
    );

    $adapter = new Custom_DbForUpdate($options);
    $queue   = new Zend_Queue($adapter$options);

    Man kann den Adapter auch im Betrieb ändern.

    $adapter = new MyCustom_Adapter($options);
    $queue   = new Zend_Queue($options);
    $queue->setAdapter($adapter);
    echo 
    "Adapter: "get_class($queue->getAdapter()), "\n";

    or

    $options = array(
        
    'name'           => 'queue1',
        
    'namespace'      => 'Custom',
        
    'driverOptions'  => array(
            
    'host'       => '127.0.0.1',
            
    'port'       => '3306',
            
    'username'   => 'queue',
            
    'password'   => 'queue',
            
    'dbname'     => 'queue',
            
    'type'       => 'pdo_mysql'
        
    )
    );
    $queue = new Zend_Queue('DbForUpdate'$config); // loads Custom_DbForUpdate

    56.5.2. Eine eigene Nachrichtenklasse erstellen

    Zend_Queue akzeptiert auch eigene Nachrichten Klassen. Unsere Variablen beginnen mit einem Unterstrich. Zum Beispiel:

    class Zend_Queue_Message
    {
        protected 
    $_data = array();
    }

    Man kann die bestehende Nachrichten Klasse erweitern. Siehe den Beispielcode in tests/Zend/Queue/Custom/Message.php.

    56.5.3. Erstellen einer eigenen Nachrichten Iterator Klasse

    Zend_Queue akzeptiert auch eine eigene Nachrichten Iterator Klasse. Diese Nachrichten Iterator Klasse wird verwendet um Nachrichten von Zend_Queue_Adapter_Abstract::recieve() zurckzugeben. Zend_Queue_Abstract::receive() sollte immer eine Controller Klasse zurückgeben so wie Zend_Queue_Message_Iterator selbst wenn nur eine Nachricht vorhanden ist.

    Siehe den Beispiel Dateinamen in tests/Zend/Queue/Custom/Messages.php.

    56.5.4. Erstellen einer eigenen Queue Klasse

    Zend_Queue kann auch sehr einfach überladen werden.

    Siehe den Beispiel Dateinamen in tests/Zend/Queue/Custom/Queue.php.

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...