Approvata la proposta di miglioramenti a Zend_Uri
weppos January 11th, 2008
Zend_Uri è uno dei primi componenti discussi su questo blog con tanto di script.
Come già documentato, è un componente fondamentale alla base di molte librerie dello Zend Framework: dai web service a Zend_Http_Client.
Oggi il core team del framework ha ufficialmente approvato la proposta conosciuta con il nome di Zend_Uri improvements, presentata da Shahar Evron, già autore della prima versione della classe.
Tra le novità più interessanti spiccano:
- il supporto a nuovi schemi come
mailto:efile:<?php // Da una stringa $uri = new Zend_Uri_Http('http://user:p4s5w0r3@www.example.com:8000/foo/bar?param=value#fragment'); // Da una stringa con il metodo factory $uri = Zend_Uri::factory('http://user:p4s5w0r3@www.example.com:8000/foo/bar?param=value#fragment'); // Schema personalizzato $uri = Zend_Uri::factory('myScheme://somehost:1000/path'); // mailto URI $uri = new Zend_Uri_Mailto(); // mailto URI da array $uri = new Zend_Uri_Mailto(array( 'scheme' => 'mailto', 'path' => 'shahar.e@zend.com', 'query' => 'subject=something')); - l’introduzione di un nuovo concetto di estendibilità che consente di registrare illimitati schemi personalizzati per far fronte a specifiche esigenze (and esempio
feed://per i feed XML) - l’introduzione di nuovi metodi per manipolare URI, come ad esempio la possibilità di eseguire un merge tra due URI o parti di URI per ricavarne un terzo
<?php // Merge di un URL HTTP parziale con un URI $uri1 = Zend_Uri::factory('http://www.example.com/foo/bar/file'); $uri2 = Zend_Uri::factory('../baz/something'); $uri3 = Zend_Uri::merge($uri1, $uri2); // $uri3 is a new object echo $uri3->getUri(); // 'http://www.example.com/foo/baz/something' - Il supporto a URI relativi e l’introduzione del base URI, ovvero il percorso base per la definizione di URI relativi (molto diffuso in feed XML o specifiche tecniche)
E’ facilmente comprensibile come queste novità causeranno alcuni problemi di retrocompatibilità che, ad ogni modo, è previsto vengano documentati ampiamente nel manuale ufficiale.
- Aggiornamenti
- Comments(0)