Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Zend Framework toimimaan

Sivun loppuun

Triton [11.05.2011 21:46:10]

#

Olisi siis pari kysymystä Zend Frameworkistä.

1. Miten saan Zendin komponentit toimimaan, sillä aina kun yritän käyttää jotain niistä saan virheen "500 Internal Server Error".

2. Pystyykö Zendin komponenttejä käyttämään, käyttämättä Zendin "projektirakennetta"?

(Mod. huom: teksti rivittyy itsekin.)

tsuriga [11.05.2011 23:08:56]

#

1. Esim. Zend_Application väärin alustettuna näyttää heittävän tuota 500:sta. zf create project myApp -projektit kyllä toimivat ihan hyvin. Mitä komponentteja yrität käyttää?

2. Kyllä, kunhan muistaa tietyt riippuvaisuussuhteet: http://epic.codeutopia.net/pack/. ZF on suunniteltu tätä silmällä pitäen, mutta suosittelen sisäistämään ensiksi MVC-rakenteen, mikä toivottavasti siivittää koodin laatua (keskustelun syövereistä löytyy esimerkkejä huonolaatuisista toteutuksista, joissa käytettiin pelkkiä komponenttejä).

Triton [12.05.2011 00:03:55]

#

Yritin käyttää Zend_Validate-komponenttia...

tsuriga [12.05.2011 00:27:15]

#

Toimiiko seuraava? Toimi ainakin omalla 5.0 CE Serverillä, ZF versio 1.11.3

<?php

// Ensure library/ is on include_path
// Skip this if you already have ZF in your path
set_include_path(
    implode(
        PATH_SEPARATOR,
        array(
            get_include_path(),
            '../library'
        )
    )
);


/** Get loader */
require_once('Zend/Loader.php');
Zend_Loader::registerAutoload();

// ZF components now load automatically
// from the library when you use them

/* Validation example */

$email = 'invalid-email@address';

$validator = new Zend_Validate_EmailAddress();
if ($validator->isValid($email)) {
    // email appears to be valid
    echo 'Valid email, woohoo!';
} else {
    // email is invalid; print the reasons
    foreach ($validator->getMessages() as $message) {
        echo "{$message}<br />\n";
    }
}

?>

Lähteet & asiaan liittyvää jatkolukemista:

Triton [12.05.2011 01:31:38]

#

Hmm... Löysinkin syyn miksei koodini toiminut. Olin unohtanut new-operaattorin instanssia luodessa *facepalm :D

Toisaalta en saanut kunnon erroria ulos, kun tuli tuo virheilmoitus 500, joten sillä aijon perustella mokaukseni. :D

Mutta kiitos avusta joka tapauksessa...

Edit. Kun aikaisemmin sanoit, että Zendillä tehdään usein huonoa jälkeä käyttämällä pelkkiä komponentteja, niin mitä luulet, että kuinka helposti voi mokata, jos käyttää esim. Zend_Validate ja Zend_Mail komponentteja palautelomakkeen tekemiseen?

tsuriga [12.05.2011 02:00:31]

#

Joo piti itekin vaan ottaa satunnaisesti paloja pois Apachen konffeista ja sittemmin zf:n luomasta index.php:stä, että pääs ees jotenkin perille, mihin tuo virhe 500 oikein viittas.

En tie tuosta miten yleistä tuo huono jälki lienee, jäi vaan itelle sillon taannoin huono kuva, mutta asiaan liittyi varmasti paljon ko. tekijän muu koodaustaito. Kyllä tuolla saa varmasti hyvääkin jälkeä aikaan kun frameworkin suunnittelussakin tämä käyttömuoto on otettu huomioon.

Triton [12.05.2011 13:53:39]

#

Itse asiassa huomasinkin, että Zendin käyttäminen on huomattavasti helpompaa, kun ei käytä tuota Zend Serveriä, sillä silloin virheilmoitukset saa suoraan näkyviin.

Triton [12.05.2011 21:49:42]

#

Mikä olisi paras opas Zend Frameworkin opiskeluun? Onko se tuo virallinen reference guide vai löytyykö jostain parempia. Muuta vikaa tuossa reference guidessa ei ole paitsi se, että se tuntuu hyppivän aina vaan uusiin asioihin ja tuntuu siltä, ettei homma pysy kasassa...

Triton [19.05.2011 02:54:02]

#

Voisikohan joku ystävällisesti selittää selvällä suomenkielellä, että mitä tuo "dispatching" (onko tälle jotain suomenkielistä vastinetta?) tarkoittaa ja miten se oikeastaan eroaa reitittämisestä (routing). Olen lueskellut Zendin manuskoista Controller-komponentista, jossa dispatching esiintyy useampaakin kertaa, mutta jotenkin asia ei ole vain auennut.

timoh [19.05.2011 13:25:13]

#

Triton kirjoitti:

Voisikohan joku ystävällisesti selittää selvällä suomenkielellä, että mitä tuo "dispatching" (onko tälle jotain suomenkielistä vastinetta?) tarkoittaa ja miten se oikeastaan eroaa reitittämisestä (routing).

Router on "jonossa" pykälää ylempänä kuin dispatcher ja se suoritetaan kertaalleen per pyyntö. Ylimalkaistettuna router selvittää urlista osat (module, controller, action, parameters) ja pukkaa ne sitten request objectissa dispatcherille, mikä lataa pyydetyn action controllerin ja suorittaa action metodin (tätä voi tapahtua useammin saman pyynnön aikana).

Router ei siis suorita mitään, se vain koostaa mitä ollaan hakemassa.

Triton [19.05.2011 13:38:43]

#

Kiitos paljon.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta