Wprowadzenie do Zend Framework

     Nauka Zend Framework

    appendix

     Przewodnik po Zend Framework


  • 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 21.3% Update 2011-11-16 - Revision 24356 - Version ZF 1.11.x

    30.8. Własne klasy kanału i wpisu

    Ostatecznie możesz rozszerzyć klasę Zend_Feed jeśli chcesz stworzyć swój własny format lub zapewnić automatyczną obsługę elementów, które działają w innej przestrzeni nazw.

    Oto przykład własnej klasy wpisu Atom która obsługuje własną przestrzeń nazw myns: wpisów. Zauważ, że ona także wywołuje za Ciebie metodę registerNamespace(), dzięki czemu użytkownik końcowy nie musi w ogóle martwić się o przestrzenie nazw.

    Przykład 30.7. Rozszerzanie klasy wpisu Atom z własnymi przestrzeniami nazw

    /**
     * Własna klasa wpisu może automatycznie nadawać adres URI (opcjonalnie)
     * oraz automatycznie dodawać dodatkowe przestrzenie nazw.
     */
    class MyEntry extends Zend_Feed_Entry_Atom
    {

        public function 
    __construct($uri 'http://www.example.com/myfeed/',
                                    
    $xml null)
        {
            
    parent::__construct($uri$xml);

            
    Zend_Feed::registerNamespace('myns',
                                         
    'http://www.example.com/myns/1.0');
        }

        public function 
    __get($var)
        {
            switch (
    $var) {
                case 
    'myUpdated':
                    
    // Tłumaczy myUpdated na myns:updated.
                    
    return parent::__get('myns:updated');

                default:
                    return 
    parent::__get($var);
                }
        }

        public function 
    __set($var$value)
        {
            switch (
    $var) {
                case 
    'myUpdated':
                    
    // Tłumaczy myUpdated na myns:updated.
                    
    parent::__set('myns:updated'$value);
                    break;

                default:
                    
    parent::__set($var$value);
            }
        }

        public function 
    __call($var$unused)
        {
            switch (
    $var) {
                case 
    'myUpdated':
                    
    // Tłumaczy myUpdated na myns:updated.
                    
    return parent::__call('myns:updated'$unused);

                default:
                    return 
    parent::__call($var$unused);
            }
        }

    }

    Teraz aby użyć tej klasy, musisz po prostu bezpośrednio utworzyć jej instancję i przypisać wartość właściwości myUpdated:

    $entry = new MyEntry();
    $entry->myUpdated '2005-04-19T15:30';

    // wywołanie w stylu metody jest obsługiwane przez funkcję __call
    $entry->myUpdated();
    // wywołanie w stylu właściwości jest obsługiwane przez funkcję __get
    $entry->myUpdated;

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...