Olen tässä yrittänyt opiskella Zend Frameworkkiä, ja en oikein ymmärrä kuinka tämä pitäisi laittaa toimintaan. Missään esimerkeissä ei includeta mitään tiedostoja, vaan tehdään suoraan uusi zend-olio. Tarviiko tämä siis asentaa jotenkin palvelimelle erikseen, muutoin kuin includettamalla?
Jos lataat Quick Startin / toimit sen ohjeiden mukaisesti niin public hakemistosta pitäisi löytyä index.php, jossa on yksi require_once
-kutsu sovellus- ja kirjastopolkujen asettamisten jälkeen. Palvaimelle pitää tunkea Zend Framework (library).
Tjaa.. siis se kansio ./library/Zend pitää laittaa kansioon joka on php.ini:n asetuksissa include_path.. eli jos asetus on
include_path = "C:\php\PEAR" niin sen pitää olla näin C:\php\PEAR\Zend
Voit toki muuttaa ks. php.ini-asetusta php:lla..
<?php // Typically, you will also want to add your library/ directory // to the include_path, particularly if it contains your ZF install set_include_path(implode(PATH_SEPARATOR, array( dirname(dirname(__FILE__)) . '/library', get_include_path() ))); // we need only these to load automatically all classes.. require_once('Zend/Loader.php'); Zend_Loader::loadClass('Zend_Loader_Autoloader'); $autoloader = Zend_Loader_Autoloader::getInstance(); // CODE WITH ZF AFTER THIS LINE
Eli nyt asetelma on
./application
./library/Zend
./public/index.php <-- eli tässä on toi include_path asetus..
Nykyisen Quick Startin index.php on kokonaisuudessaan tällainen
<?php // Define path to application directory defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application')); // Define application environment defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production')); // Ensure library/ is on include_path set_include_path(implode(PATH_SEPARATOR, array( realpath(APPLICATION_PATH . '/../library'), get_include_path(), ))); /** Zend_Application */ require_once 'Zend/Application.php'; // Create application, bootstrap, and run $application = new Zend_Application( APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini' ); $application->bootstrap() ->run();
tsuriga kirjoitti:
Nykyisen Quick Startin index.php on kokonaisuudessaan tällainen
Juuri näin mulla on index.php:ssa.. mutta ehkäpä minun mielestä ei ole kokemattoman kannalta oikea lähestymistapa lähteä suoraan MVC-mallista ja Olio-ohjelmoinnista.. kun on riskinä että se ei vaan tajua ja tekee kuiteskin väärin.
Sitä paitsi Rami Heinisuon PHP- ja MySQL-oppaassa taisi olla että PHP:lla on mahdollista toteuttaa ihan samanlainen ohjelmisto ilmankin Olio-ohjelmointia. Tosin mielestäni se taas tarkoittaa että kaikki kirjoitetaan lähes kokonaan aina uusiksi ja homma menee sekavaksi isoissa jutuissa.
Se mitä minulla on kokemusta niin projektissa voi tulla mm. viive sen takia kun joku on tenyt liian hienoa luokka-pohjaista ohjelmointia ja jättänyt dokumentoimatta miten homma toimii ja sit se on vaan kamala työ etsiä se tiedosto mitä ja miten muuttamalla saadaan aikaan asiakaan vaatima muutos.
Minä suosin ns. Fully Functional .zip paketteja enkä mitään kilometrin pituisia sepustuksia, koska minä puhun vain koodia eikä mua kiinnosta muu kuin se .zip paketti missä ohjelma tai tutoriaali on valmiiksi toimivana.. se koodi kun on paljon ymmärrettävämpää ja säästyy aikaa kun ei tarvitse lukea kilometrin sepustuksia.. eli se zip-paketti ja asennus ohjeet ranskalaisin viivoin..
Olioitahan sillä kumminni joutuu käyttämään :). Toki sama ohjelmisto on mahdollista toteuttaa proseduraalisesti, ja yhtä hyvin niitä viiveitä tulee myös siellä jos koodi on epäselvää ja/tai dokumentoimatonta. Quick Startin koodit saa halutessaan yhtenä pakettina.
http://framework.zend.com/manual/en/learning.
Sen jälkeen vaan seuraat tuota manuaalia. Jos teet omalla koneella localhostissa niin kannattaa http.conffin laittaa alias osoittamaan suoraan tuonne public hakemistoon niin toimii paremmin. En tiedä oliko tämä vastaus mitä hait... Mutta quickstart on erittäin simppeli opas tuohon.
Aihe on jo aika vanha, joten et voi enää vastata siihen.