Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 15 reacties
Bron: Zend Technologies, submitter: storeman

Zend heeft begin deze maand met 1.6.0 als het versienummer een nieuwe versie van Zend Framework online gezet. Dit framework richt zich op het vergemakkelijken van het ontwerpen, het schrijven en het onderhouden van php-applicaties. Om dit mogelijk te maken zijn onder meer verschillende api's van Google, Microsoft, Amazon, Yahoo en Flickr in Zend Framework ge´ntegreerd. Verder bevat het programma zoekfunctionaliteit, ondersteuning voor ajax en rss- en atom-syndicatie. De bijbehorende aankondiging ziet er als volgt uit:

Zend Framework 1.6 Now Available

That right, fire up those down-loaders and grab your headlamp and pick-axe. There’s fresh code to be had for the taking!

The Important Bits:
You can download Zend Framework 1.6 here Zend Framework Download Page.

The Details:
Zend Framework 1.6 is now available and a significant upgrade in several areas. The buzz is already starting to make it’s way around the web as both Andi Gutmans and InfoWorld have already covered the new release. I’m sure as the code gets out there and people start playing with it, more posts will be forthcoming.

This version of Zend Framework gives developers a few new tools for their ever expanding toolbox.
  • Zend_Tool
  • Lucene 2.3 Index File Format Support
  • Zend_Session save handler for Database Tables
  • Paginator Component
  • Figlet Support
  • ReCaptcha Service
  • Captcha Form Element
  • Zend_Config_Xml Attribute Support
  • Zend_File_Transfer Component
  • File Upload Form Element
  • Zend_Wildfire Component with FireBug Log Writer
Other features have been added and a whopping 287 tickets closed as Zend Framework continues to mature and establish itself as the premier framework for PHP development.

Zend Framework documentation now available as a PDF
If you’ve been thinking of getting into Zend Framework but haven’t yet taken the plunge OR if you’ve ever wanted the entire Zend Framework manual then you are really going to like this bit. The entire manual has been published into a PDF. To get it you have to visit zend.com (free registration required) and download it. It’s 4.4MB of Zend Framework goodness ready for you to keep on your desktop or load on your favorite portable e-book reader and keep it as a handy reference.

So help bring the servers to their knees, grab your copy of Zend Framework 1.6 today and start adding even more awesomeness to your applications!
Moderatie-faq Wijzig weergave

Reacties (15)

Een mooi alternatief voor ZF dat minstens op hetzelfde niveau staat kwa doordachtheid en activiteit is het Symfony project. De community lijkt hier ook actiever te zijn (hopen user contributed plugins van hoog niveau).

Over Zend_Lucene: dit is knap gemaakt, de module kan zelfs met Java aangemaakte indexes lezen, maar is wel een heel stuk trager. Op een search doorheen de volledige tekst van Wikipedia (12GB) haalt de Java versie op mijn machine 20 searches per seconde. Bij de PHP versie was hij na een minuut nog bezig met de eerste search. Voor "normale" databronnen verwacht ik dat dit wel performant genoeg zal werken.
Vet. Ik ben zelf min of meer bezig met een eigen website mbv Zend Framework, en ik moet zeggen dat ZF een van de meest professionele PHP frameworks is waar ik tot nu toe mee gewerkt heb.

Veel andere frameworks hebben een 'kijk een website binnen 5 minuten' tutorial, maar ZF niet (echt), maar daar is het ook niet op gericht. ZF is meer gericht op grotere projecten, waar herbruikbare code, OO ontwerp, testbaarheid en flexibiliteit belangrijk is. Zo is ZF opgebouwd uit een lading 'modules' die allemaal onafhankelijk van elkaar werken, zodat jij als ontwikkelaar zelf de keuze hebt welke modules je wel of niet wilt gebruiken.

Ik heb nog lang niet alles uitgevogeld binnen ZF, maar er zijn wel een paar opmerkingen die ik er op heb:

Zend_DB vindt ik persoonlijk niet zo mooi, er zitten nogal wat haken en ogen aan. Zo definieer je aliassen 'andersom' dan je in standaard SQL gewend bent (in SQL is het kolom as alias, in ZF is het array('alias' => 'kolom')).

Ook is het niet een volledige ORM, maar een DB abstractielaag. Dat is op zich niet verkeerd, maar dat kan voor sommigen toch belangrijk zijn.

Ikzelf gebruik Doctrine binnen Zend Framework zonder aanzienlijke problemen - het enige probleem was bij mij dat mijn host nog niet op 5.2.3 maar op 5.2.0 is, waardoor een paar features niet werken.

Ook is Zend_Form niet helemaal 100, je moet namelijk de HTML representatie (en dergelijke) in je code aanpassen (door middel van decorators, dat trouwens wel koel is enzo). Hierdoor heb je view logica in je programma, wat niet echt optimaal is als je echt van gescheiden logica houdt. Je kunt wel gewoon instellen dat een form element een gedeeltelijk view script moet gebruiken, dus de keuze is nog steeds aan de ontwikkelaar.

De file upload en captcha form elementen zijn sowieso goeie toevoegingen aan deze versie, evenals de paginator en zend_session in de database. De rest, zoals overigens een groot deel van ZF, is meer voor specialistische doeleinden - voor wanneer je het specifiek nodig hebt.
EDIT: Waar ik ZF schrijf, bedoel ik uiteraard Zend Framework.

Ikzelf gebruik ook voor zowel grotere als kleinere applicaties Zend Framework, en ik kan het toch niet helemaal met je eens zijn.

Bij de ontwikkeling van ZF is bewust gekozen om geen ORM van Zend_Db te maken (ik kan echter helaas geen blogpost hierover vinden, is er wel ;)). Wel is momenteel ZendX_Doctrine (ZendX is het niet commercieel-ondersteunde gedeelte van ZF door Zend) momenteel in ontwikkeling welke voor ZF 1.7 geplanned staat, wat Q4 2008 moet uitkomen.

Over dat Zend_Form niet helemaal 100(% ?) is kan ik absoluut niet met je eens zijn. De decorators waarmee je je forms kunt opmaken zijn juist op zich zelf staande views. Dit betekent dat je je views niet met al je forms vol krijgt, je kan makkelijk 1 form op meerdere plekken in je applicatie zetten, zonder dezelfde inhoud in meerdere views te zetten, en je kan Zend_Form los van de rest van ZendFramework gebruiken, wanneer het standaard views zou gebruiken, zou het weer afhankelijk van Zend_View zijn etc...

Verder zou ik graag willen benadrukken dat het grootste deel van ZF niet voor specialistische taken bedoeld is. Ik denk dat ongeveer 70% van de componenten gebruikt wordt - in de grotere projecten- hierbij is te denken aan Zend_Mail, Zend_Db, Zend_Date, Zend_Config, Zend_Auth, Zend_Acl, Zend_Pdf, Zend_Locale, Zend_Date, Zend_Paginator, Zend_Registry, Zend_Form, Zend_validate, etc.

Wat trouwens ook erg interessant is, is de Zend_Dojo component, hiermee kan je zeer gemakkelijk dojo (vergelijkbaar met jquery) integreren. Voor meer informatie hierover kijk ook hier (en een webinar hierover, welke een mooi voorbeeld is).

Frameworks als symfony adverteren er mee dat je bij hen een website in enkele minuten kan genereren. Hier is inmiddels een antwoord van ZF (in wording) op genaamd Zend_Tool. Dit is een zeer krachtige Code Generation Tool, maar uiteraard is het niet verplicht om deze component te gebruiken. Een voorbeeld hiervan is hier te aanschouwen.

Al met al weer heel veel verbeteringen, en ik kan dan ook iedereen aan raden om er toch tenminste eens naar te kijken als je wel eens php gebruikt: http://framework.zend.com

[Reactie gewijzigd door Freeaqingme op 12 september 2008 00:48]

o definieer je aliassen 'andersom' dan je in standaard SQL gewend bent (in SQL is het kolom as alias, in ZF is het array('alias' => 'kolom')).
Lijkt me logisch: 'kolom' AS 'key', array('key' => 'kolom').
Je zegt toch niet 'key' AS 'kolom' :p
is het Zend framekwork nu volledig clientside (ik bedoel dus geen installaties op de server behalve alle php files)?
Is php niet altijd serverside?
natuurlijk maar zoals je had kunnen lezen bedoel ik of je geen installaties moet doen op de server behalve het neer zetten van de nodige PHP files. Ik weet niet hoe ik het anders moet omschrijven. Ik dacht dat het duidelijk genoeg was.

Als ik MySQL support wil hebben moet ik daarvoor iets installeren op de server en configureren. Als ik alleen maar wat PHP files moet neerzetten dan kan ik dit framework overal gebruiken. Net zoals het framework codeIgniter wat best veel lijkt op dit.

[Reactie gewijzigd door dvogel op 11 september 2008 15:14]

In de meeste gevallen kan je het idd gewoon op je server dumpen, en dan zou die moeten werken, maar je hebt natuurlijk wel PDO nodig voor DB connecties. Simpelweg aan je hoster vragen of die het wil installeren.
Ok, dus PDO is het enige component (wat niet default zit in de installatie) die je hosting moet aanzetten?
Je hebt geen PDO nodig als je de MySQLi database component gebruikt. In de vorige versies zat daar wel een bug in en ik weet niet of die er nu uit is. Die is wel vrij makkelijk te maken (heb echter nog geen patch ingediend want dan moet je zo'n document tekenen en zo om te zorgen dat zend niet gerechterlijk in de problemen komt, en dat is er bij nog niet van gekomen. Zou ik wel eens moeten doen eigenlijk.).

Mocht de bug er nog wel inzitten, dan moet je de _execute() methode in Zend/Db/Statement/Mysqli.php vervangen door:

[code]
/**
* Executes a prepared statement.
*
* @param array $params OPTIONAL Values to bind to parameter placeholders.
* @return bool
* @throws Zend_Db_Statement_Mysqli_Exception
*/
public function _execute(array $params = null)
{
if (!$this->_stmt) {
return false;
}

// if no params were given as an argument to execute(),
// then default to the _bindParam array
if ($params === null) {
$params = $this->_bindParam;
}
// send $params as input parameters to the statement
if ($params) {
array_unshift($params, str_repeat('s', count($params)));
call_user_func_array(
array($this->_stmt, 'bind_param'),
$params
);
}

// execute the statement
$retval = $this->_stmt->execute();
if ($retval === false) {
/**
* @see Zend_Db_Statement_Mysqli_Exception
*/
require_once 'Zend/Db/Statement/Mysqli/Exception.php';
throw new Zend_Db_Statement_Mysqli_Exception("Mysqli statement execute error : " . $this->_stmt->error);
}

// retain metadata
if ($this->_meta === null) {
$this->_meta = $this->_stmt->result_metadata();
if ($this->_stmt->errno) {
/**
* @see Zend_Db_Statement_Mysqli_Exception
*/
require_once 'Zend/Db/Statement/Mysqli/Exception.php';
throw new Zend_Db_Statement_Mysqli_Exception("Mysqli statement metadata error: " . $this->_stmt->error);
}
}

// statements that have no result set do not return metadata
if ($this->_meta !== false) {

// get the column names that will result
$this->_keys = array();
foreach ($this->_meta->fetch_fields() as $col) {
$this->_keys[] = $this->_adapter->foldCase($col->name);
}

// set up a binding space for result variables
$this->_values = array_fill(0, count($this->_keys), null);

// set up references to the result binding space.
// just passing $this->_values in the call_user_func_array()
// below won't work, you need references.
$refs = array();
foreach ($this->_values as $i => &$f) {
$refs[$i] = &$f;
}

// safe some memory
$this->_stmt->store_result();

// bind to the result variables
call_user_func_array(
array($this->_stmt, 'bind_result'),
$refs
);
}

return $retval;
}
[/code]
PDO is alleen nodig als je daadwerkelijk Zend_DB gaat gebruiken, het databasecomponent van Zend Framework. Het mooie aan Zend is dat je het per onderdeel kan gebruiken - als je bijvoorbeeld geen Zend_View maar Smarty, om maar een voorbeeld te noemen, kun je dat gewoon doen. In plaats van Zend_DB kun je ook Doctrine gebruiken (die heeft overigens ook PDO en PHP 5.2.3+ nodig, aardig hoge eisen), of een andere databaselaag naar jouw keuze (zelfs gewoon je eigen db laag, als je die hebt / wilt maken).
PDO zit sinds 5.1 standaard in PHP en staat sinds 5.2 standaard aan.
En je hebt sowieso 5.1.2 nodig voor ZF, en 5.2 is aangeraden. Dat zit dus wel goed ;).
Het framework maakt gebruikt voor bestanden van derden.
pdo, etc. etc.
Apache, php 5.2 etc lijkt me sowieso wel handig..

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True