| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 17372 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.application.quick-start">
- <title>Gyorstalpaló</title>
- <para>
- Két útja van a <classname>Zend_Application</classname> használatba
- vételének, attól függően, hogyan kezdjük projektünket. Mindkét esetben
- egy <classname>Bootstrap</classname> osztály és egy vonatkozó
- konfigurációs állomány létrehozása az első.
- </para>
- <para>
- A folytatásban egy projekt <classname>Zend_Tool</classname>-lal való
- létrehozása, ezt
- <link linkend="zend.application.quick-start.manual">átugorva</link>
- pedig a <classname>Zend_Application</classname> egy létező projekthez
- való hozzáadása olvasható.
- </para>
- <sect2 id="zend.application.quick-start.zend-tool">
- <title>A Zend_Tool használata</title>
- <para>
- A <classname>Zend_Application</classname> használatba vételének
- leggyorsabb módja a <classname>Zend_Tool</classname> munkába
- állítása a projekt képzéshez. Ez egyúttal létrehozza a
- <classname>Bootstrap</classname> osztályt és állományt.
- </para>
- <para>
- Projekt generálásához végre kell hajtani a <command>zf</command>
- parancsot (*nix rendszereken):
- </para>
- <programlisting language="sh"><![CDATA[
- % zf create project newproject
- ]]></programlisting>
- <para>
- Vagy a Windows <filename>zf.bat</filename> parancsát:
- </para>
- <programlisting language="dos"><![CDATA[
- C:> zf.bat create project newproject
- ]]></programlisting>
- <para>
- Mindkettő a következőképp festő projekt szerkezetet alakítja ki:
- </para>
- <programlisting language="text"><![CDATA[
- newproject
- |-- application
- | |-- Bootstrap.php
- | |-- configs
- | | `-- application.ini
- | |-- controllers
- | | |-- ErrorController.php
- | | `-- IndexController.php
- | |-- models
- | `-- views
- | |-- helpers
- | `-- scripts
- | |-- error
- | | `-- error.phtml
- | `-- index
- | `-- index.phtml
- |-- library
- |-- public
- | `-- index.php
- `-- tests
- |-- application
- | `-- bootstrap.php
- |-- library
- | `-- bootstrap.php
- `-- phpunit.xml
- ]]></programlisting>
- <para>
- A fenti ábrán a rendszertöltő a
- <filename>newproject/application/Bootstrap.php</filename>
- állományban található, és elsőre a következőképp néz ki:
- </para>
- <programlisting language="php"><![CDATA[
- class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
- {
- }
- ]]></programlisting>
- <para>
- Ezen kívül egy konfigurációs állomány is létrejött
- <filename>newproject/application/configs/application.ini</filename>
- néven, az alábbiakkal:
- </para>
- <programlisting language="dosini"><![CDATA[
- [production]
- phpSettings.display_startup_errors = 0
- phpSettings.display_errors = 0
- includePaths.library = APPLICATION_PATH "/../library"
- bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
- bootstrap.class = "Bootstrap"
- resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
- [staging : production]
- [testing : production]
- phpSettings.display_startup_errors = 1
- phpSettings.display_errors = 1
- [development : production]
- phpSettings.display_startup_errors = 1
- phpSettings.display_errors = 1
- ]]></programlisting>
- <para>
- Az összes ebben található beállítás a
- <classname>Zend_Application</classname>-nel és a rendszertöltővel
- történő használat célját szolgálja.
- </para>
- <para>
- Egy másik érdeklődésre számot tartó állomány a
- <filename>newproject/public/index.php</filename>, mely meghívja és
- elindítja a <classname>Zend_Application</classname>-t.
- </para>
- <programlisting language="php"><![CDATA[
- // 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'));
- /** 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();
- ]]></programlisting>
- <para>
- Folytatás az
- <link linkend="zend.application.quick-start.resources">erősforrásokról</link>
- szóló résznél.
- </para>
- </sect2>
- <sect2 id="zend.application.quick-start.manual">
- <title>Hozzáadás az alkalmazáshoz</title>
- <para>
- A <classname>Zend_Application</classname> alapjai meglehetősen
- egyszerűek:
- </para>
- <itemizedlist>
- <listitem><para>
- Az <filename>application/Bootstrap.php</filename> állomány
- létrehozása benne a <classname>Bootstrap</classname> osztállyal.
- </para></listitem>
- <listitem><para>
- Az <filename>application/configs/application.ini</filename>
- konfigurációs állomány elkészítése az alapvető beállításokkal.
- </para></listitem>
- <listitem><para>
- A <filename>public/index.php</filename> átalakítása.
- </para></listitem>
- </itemizedlist>
- <para>
- Elsőként létre kell hozni a <classname>Bootstrap</classname>
- osztályt az <filename>application/Bootstrap.php</filename>-ban, a
- következőkkel:
- </para>
- <programlisting language="php"><![CDATA[
- class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
- {
- }
- ]]></programlisting>
- <para>
- Ha ez megvan, el kell készíteni a konfigurációs állományt. Ezen
- oktatóanyag keretében egy <acronym>INI</acronym> stílusú beállítást
- használunk; ugyanígy használható persze <acronym>XML</acronym> vagy
- <acronym>PHP</acronym> is. Az
- <filename>application/configs/application.ini</filename> tartalma:
- </para>
- <programlisting language="dosini"><![CDATA[
- [production]
- phpSettings.display_startup_errors = 0
- phpSettings.display_errors = 0
- includePaths.library = APPLICATION_PATH "/../library"
- bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
- bootstrap.class = "Bootstrap"
- resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
- [staging : production]
- [testing : production]
- phpSettings.display_startup_errors = 1
- phpSettings.display_errors = 1
- [development : production]
- phpSettings.display_startup_errors = 1
- phpSettings.display_errors = 1
- ]]></programlisting>
- <para>
- Most pedig alakítsuk át <filename>public/index.php</filename>
- kapu-szkriptünk. Ha az állomány nem létezik, hozzuk létre, ha igen,
- cseréljük le a tartalmát:
- </para>
- <programlisting language="php"><![CDATA[
- // Elérési út az alkalmazás könyvtárhoz
- defined('APPLICATION_PATH')
- || define('APPLICATION_PATH',
- realpath(dirname(__FILE__) . '/../application'));
- // Alkalmazáskörnyezet
- defined('APPLICATION_ENV')
- || define('APPLICATION_ENV',
- (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
- : 'production'));
- // Jellemzően az include_path-hoz hozzáadásra kerül a library/ könyvtár is,
- // főleg ha az tartalmazza a telepített ZF-t
- set_include_path(implode(PATH_SEPARATOR, array(
- dirname(dirname(__FILE__)) . '/library',
- get_include_path(),
- )));
- /** Zend_Application */
- require_once 'Zend/Application.php';
- // Alkalmazás létrehozása, betöltése és futtatása
- $application = new Zend_Application(
- APPLICATION_ENV,
- APPLICATION_PATH . '/configs/application.ini'
- );
- $application->bootstrap()
- ->run();
- ]]></programlisting>
- <para>
- Megfigyelhető, hogy az alkalmazáskörnyezet állandó egy
- „APPLICATION_ENV” környezeti változót keres, ennek beállítását a
- webkiszolgálói környezetben ajánljuk. Apache alatt ez megtehető a
- vhost beállításoknál vagy <filename>.htaccess</filename>
- állományban. A <filename>public/.htaccess</filename> ajánlott
- tartalma:
- </para>
- <programlisting language="conf"><![CDATA[
- SetEnv APPLICATION_ENV development
- RewriteEngine On
- RewriteCond %{REQUEST_FILENAME} -s [OR]
- RewriteCond %{REQUEST_FILENAME} -l [OR]
- RewriteCond %{REQUEST_FILENAME} -d
- RewriteRule ^.*$ - [NC,L]
- RewriteRule ^.*$ index.php [NC,L]
- ]]></programlisting>
- <note>
- <title>A mod_rewrite-ról</title>
- <para>
- A fenti átíró szabályok a virtuális kiszolgáló dokumentum
- gyökére alatti minden állományt elérhetővé tesznek. Ha
- ez nem kívánatos, a szabályok szigoríthatók. Továbbiakért lásd
- az Apache weblapjának
- <ulink url="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html">mod_rewrite fejezetét</ulink>.
- </para>
- </note>
- <para>
- Ennél a pontnál a <classname>Zend_Application</classname>
- működőképes.
- </para>
- </sect2>
- <sect2 id="zend.application.quick-start.resources">
- <title>Erőforrások hozzáadása és létrehozása</title>
- <para>
- A fentieket követve rendszertöltő osztály igénybe vesz, és
- futtatáskor elindít egy elülső vezérlőt. Azonban minden valószínűség
- szerint ennél egy kicsit több beállításra lesz szükség.
- </para>
- <para>
- Ebben a részben hozzáadunk az alkalmazásunkhoz két erőforrást.
- Első körben üzembe helyezzük az elrendezéseket, ezt követően pedig
- testreszabjuk a nézet objektumot.
- </para>
- <para>
- A <classname>Zend_Application</classname>-nel érkező erőforrások
- egyike az elrendezés, mely egy <classname>Zend_Layout</classname>
- példány beállításához szükséges konfiguráció megadását várja.
- </para>
- <para>
- Hogy használhassuk, mindössze a konfigurációs állományt kell
- frissítenünk.
- </para>
- <programlisting language="dosini"><![CDATA[
- [production]
- phpSettings.display_startup_errors = 0
- phpSettings.display_errors = 0
- bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
- bootstrap.class = "Bootstrap"
- resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
- ; Adjuk hozzá a következő sorokat
- resources.layout.layout = "layout"
- resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
- [staging : production]
- [testing : production]
- phpSettings.display_startup_errors = 1
- phpSettings.display_errors = 1
- [development : production]
- phpSettings.display_startup_errors = 1
- phpSettings.display_errors = 1
- ]]></programlisting>
- <para>
- Ha még nem tettük, hozzuk létre az
- <filename>application/layouts/scripts/</filename> könyvtárat, benne
- pedig a <filename>layout.phtml</filename> állományt. Egy jó
- elrendezés kezdésképp (ami az utána bemutatott nézettel is
- összhangban van):
- </para>
- <programlisting language="php"><![CDATA[
- <?php echo $this->doctype() ?>
- <html>
- <head>
- <?php echo $this->headTitle() ?>
- <?php echo $this->headLink() ?>
- <?php echo $this->headStyle() ?>
- <?php echo $this->headScript() ?>
- </head>
- <body>
- <?php echo $this->layout()->content ?>
- </body>
- </html>
- ]]></programlisting>
- <para>
- Ennél a pontnál rendelkezünk egy működő elrendezéssel.
- </para>
- <para>
- Most hozzáadunk egy saját nézet erőforrást. A nézet létrehozásakor
- be akarjuk állítani a <acronym>HTML</acronym> dokumentumtípust és
- egy alapértelmezett értéket a címnek, melyet a
- <acronym>HTML</acronym> dokumentumfejben használhatunk. Mindez
- eléréséhez <classname>Bootstrap</classname> osztályt bővítenünk kell
- egy tagfüggvénnyel:
- </para>
- <programlisting language="php"><![CDATA[
- class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
- {
- protected function _initView()
- {
- // A nézet beállítása
- $view = new Zend_View();
- $view->doctype('XHTML1_STRICT');
- $view->headTitle('Első Zend Framework alkalmazásom');
- // Hozzáadás a ViewRendererhez
- $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
- 'ViewRenderer'
- );
- $viewRenderer->setView($view);
- // Visszaadjuk, hogy a eltárolódjon a rendszertöltőben
- return $view;
- }
- }
- ]]></programlisting>
- <para>
- A fenti tagfüggvény magától végre lesz hajtva betöltődéskor, és
- biztosítja, hogy a nézet az alkalmazás szükségletei szerint legyen
- beállítva.
- </para>
- </sect2>
- <sect2 id="zend.application.quick-start.next-steps">
- <title>Hogyan tovább</title>
-
- <para>
- A fentiek már elegendők kiindulásnak. A továbblépéshez hozzunk létre
- erőforrás-tagfüggvényeket, vagy – a teljes újrahasználhatóság
- jegyében – erőforrás bővítmény osztályokat. Olvassunk tovább!
- </para>
- </sect2>
- </sect1>
|