Caution: You are browsing the legacy symfony 1.x part of this website.

1. Nap: A projekt útnak indítása

Bevezető

Három éve már annak, hogy a symfony keretrendszer nyílt forráskódú lett és azóta az egyik legközkedveltebb PHP keretrendszerré vált kiemelkedő tulajdonságainak és nagyszerű dokumentációjának köszönhetően. Ez a tradíció korán kezdődött.

2005 Decemberében a symfony hivatalos kiadása után közzétettük az "[Askeet tutorial] -t (/askeet/1_0/en/), ami egy 24 leckéből álló, December 1 és Karácsony között naponta frissülő oktatóanyag.

A keretrendszer bemutatására szolgáló leírás az újonnan érkezők számára felbecsülhetetlen értékűnek bizonyult. Sok fejlesztő az askeetnak köszönhetően tanulta meg a symfonyt, továbbá számtalan cég használja oktatási célokra.

A symfony 1.2 megjelenése után idejétmúlttá vált, így úgy döntöttünk, hogy készítünk egy az askeethoz hasonló adventi naptárat - a Jobeetet.

Ez a leírás 2008-ban jelent meg a symfony blogon napi frissítéssel. Most ennek a könyvvé alakított formáját olvasod.

A kihívás

Minden egyes fejezet nagyjából 1 órásra készült, így alkalmat teremt a symfonyt elsajátítására egy valódi weboldal készítése során.

Az egy órás leckék így egy egész napot tesznek ki végül. Úgy gondoljuk, ez pontosan elegendő idő egy fejleszőnek, hogy elsajátítsa a symfony alapjait. Minden egyes nap elteltével új tulajdonsággal ruházzuk fel alkalmazásunkat, és kihasználjuk az alkalmat, hogy bemutassuk neked gyakorlati úton a symfony új funkcióit.

Az askeetnál a 21. nap a "találj-egy-symfony-gurut-egy-napra" címet kapta. Ötletünk sem volt aznapra, hogy milyen új tulajdonság kerüljön az alkalmazásba, így hát feldobtuk a labdát a közösségnek. Végül nagyszerű sikert aratott. A közösség úgy döntött, hogy szükség van egy keresőre. Így aztán megcsináltuk. A 21. nap bizonyult a legnépszerűbb fejezetnek az askeetban.

Idén a telet a Jobeet 21. napján ünnepeltük egy design verseny kihirdetésével. A nyertes designt centre{source} készítette, így az vált ennek a leírásnak, valamint a Jobeet weboldal alapértelmezett megjelenésévé.

Ez a leírás különbözik társaitól

Emlékezz csak a PHP4 korai időszakára. Ah, la Belle Epoque (szép korszak)! A PHP volt az első egyik legkönnyebben elsajátítható nyelv mely a webre készült.

A webfejlesztési eszközök rohamos fejlődésével lépést kell tartaniuk a fejlesztőknek, hogy mindig a legjobb technikákat és eszközöket alkalmazzák. A legjobb módja a tanulásnak a blogok, oktatóanyagok és könyvek olvasása. Sok ilyet olvastunk mi is, legyen akár szó PHP, Python, Java, Ruby, vagy Perl nyelvről, kivétel nélkül az összes elvérzik akkor, amikor a szerző kódrészleteket mutat be példaképpen.

Mindenbizonnyal hozzászoktál már az ehhez hasonló üzenetekhez:

"Az alkalmazáshoz ne felejts el ellenőrzéseket valamint megfelelő hibakezelést hozzáadni."

vagy

"A biztonság megvalósítása a felhasználó feladata."

vagy

"Természetesen a tesztek írásáról ne feledkezz meg."

Most akkor hogy is van ez? Ezek azért nem elhanyagolható dolgok. Mondhatni a legfontosabb része bármilyen kódnak. Olvasóként magadra vagy utalva. Ezeknek a tényeknek a figyelembevétele nélkül a példák többnyire hasztalanok. Nem tudod azokat jó kiindulópontként használni, és ez rossz. Miért? Mert a biztonsághoz, az ellenőrzésekhez, a hibakezeléshez és a tesztekhez - csak hogy néhányat említsünk - megfelelő kód szükséges.

Ebben a leírásban nem fogsz a fent említett kijelentésekkel találkozni, mivel közösen írjuk meg a teszteket, a hibakezelést, az ellenőrzéseket, és biztosítjuk a biztonságos alkalmazás fejlesztését. A symfonyval a legjobb technikákat sajátítod el ahhoz hogy professzionális alkalmazásoskat készíts a nagyközönség számára. Lehetőségünk van felkínálni neked ezt a luxust, mivel a symfony rendelkezésdre bocsát mindent, ami szükséges ahhoz, hogy kevés kódolással elkészíts egy alkalmazást.

Ellenőrzések, hibakezelés, biztonság, valamint a tesztek kiemelt figyelmet kaptak a symfonyban, így nem fog sok időbe telni ezeknek a bemutatása. Ez csak egy indok a sok közül, miért fontos egy keretrendszer használata egy élet-szerű weboldal készítésénél.

Az összes kód amivel az olvasás során találkozol felhasználható egy valós projekt készítésénél. A kódot részleteiben, vagy akár teljes egészében felhasználhatod.

A projekt

A feladat lehetett volna egy újabb blog motor készítése, de jobbnak láttuk egy hasznosabb projekt elkészítéséhez használni a symfonyt. Célunk bemutatni, hogy a symfonyval hogyan lehet stílusosan, kis erőfeszítéssel professzionális alkalmazásokat készíteni.

Azt, hogy mostani projektünk miről fog szólni, még nem áruljuk el, mivel még sok dolgunk van azon kívül is. Végül is a nevét már tudod: Jobeet.

Mit fogunk ma csinálni?

Mivel 24 óra sok idő egy symfonys alkalmazás fejlesztéshez, nem fogunk PHP kódot írni a mai nap folyamán. Egy sor kód írása nélkül is meglátod majd, hogy mik az előnyei egy olyan keretrendszer használatának mint a symfony.

A mai nap célja, hogy beállítsuk a fejlesztési környezetet és megjelenítsük az alkalmazás egy oldalát a böngészőben. Ez magábafoglalja a symfony telepítését, egy alkalmazás létrehozását, valamint a webszerver beállítását.

Előkövetelmények

Elsősorban győződj meg arról, hogy van egy működőképes webfejlesztési környezeted webszerverrel (pl. Apache), adatbáziskezelőd (MySQL, PostgreSQL vagy SQLite), valamint egy legalább 5.2.4 -es verziójú PHP konfigurációd.

Mivel a parancssort sűrűn fogjuk használni, előnyösebb ha egy UNIX alapú operációs rendszert használsz, de Windowson is megfelelően fog működni, csak néhány parancsot kell majd beírnod a parancssorba.

note

A Unix parancsok hasznosak lehetnek Windows környezetben is. Ha szeretnél olyan eszközöket használni Windowson mint például tar, gzip, vagy grep, telepítheted a [Cygwin] -t (http://cygwin.com/). A hivatalos dokumentáció egy kicsit hiányos, bővebb telepítési útmutatót itt találsz. Kalandvágyók figyelmébe ajánjuk: Windows Szolgáltatások Unixra.

Mivel ez a leírás leginkább a symfony keretrendszer bemutatására összpontosít, szükséges a PHP 5 és az objektum orientált programozás alapszintű ismerete.

Symfony Telepítése

Először hozz létre egy könyvtárat amiben tárolod majd a Jobeethez kapcsolódó fájlokat:

$ mkdir -p /home/sfprojects/jobeet
$ cd /home/sfprojects/jobeet

Windowson:

c:\> mkdir c:\development\sfprojects\jobeet
c:\> cd c:\development\sfprojects\jobeet

note

Windows felhasználóknak tanácsos olyan könyvtárba telepíteni a symfonyt, amely nem tartalmaz szóközt. Próbáld elkerülni a Documents and Settings könyvtárat, beleértve bármit ami a My Documents alatt helyezkedik el.

Készíts egy könyvtárat, a symfony keretrendszer fájljainak tárolására:

$ mkdir -p lib/vendor

A telepítő oldalon található a symfony összes verziója, valamint az azokat összehasonlító táblázat.

Mivel ez a leírás symfony 1.2 -höz készült látogass el a telepítő oldalra a symfony 1.2 letöltéséhez.

A "Source Download" részlegnél fogod megtalálni, .tgz illetve .zip formátumban. Töltsd le, majd csomagold ki az előbb létrehozott lib/vendor/ könyvtárba.

$ cd lib/vendor
$ tar zxpf symfony-1.2.2.tgz
$ mv symfony-1.2.2 symfony
$ rm symfony-1.2.2.tgz

Windwoson a fájl kitömörítését elvégezheted az intézőben is. Miután átnevezted a könyvtárat symfony -ra ezen az úton fogod elérni: c:\development\sfprojects\jobeet\lib\vendor\symfony.

Mivel a PHP konfigurációk disztribúciónként sokban különböznek, ellenőriznünk kell, hogy az általad használt PHP beállítások megfelelnek a symfony alapkövetelményeinek. Futtasd le parancssorban a konfiguráció ellenőrző szkriptet melyet a symfonyval együtt kaptál:

$ cd ../..
$ php lib/vendor/symfony/data/bin/check_configuration.php

Probléma esetén tanácsokat kapsz majd azok kijavítására. Javasolt továbbá, hogy lefuttasd ezt a szkriptet egy böngészőből is, mivel a PHP konfiguráció különbözhet. Másold a fájlt valahova a webszerver gyökérkönyvtárába és futtasd le azt. Ezután ne felejtsd eltávolítani:

$ rm web/check_configuration.php

Konfiguráció ellenőrző

Ha a szkript nem jelez semmilyen hibát, ellenőrizd a symfony parancssor|Command Line használatával a verziószámot, és hogy a symfony megfelelően lett telepítve (figyelj a nagy V betűre):

$ php lib/vendor/symfony/data/bin/symfony -V

Windowson:

c:\> cd ..\..
c:\> php lib\vendor\symfony\data\bin\symfony -V

Ha kíváncsi vagy mit tud még ez a parancssoros felület, futtasd le a symfony parancsot a beállítások és feladatok listázásához:

$ php lib/vendor/symfony/data/bin/symfony

Windowson:

c:\> php lib\vendor\symfony\data\bin\symfony

A symfony parancssoros felület a fejlesztő legjobb barátja. Sok eszközt ad a fejlesztő kezébe, hogy elősegítse a naponta sűrűn előforduló tevékenységeket mint például a gyorsítótár törlése, kód generálása, és még sok minden más.

Projekt beállítások

symfonyban az ugyanazt az adatmodellt használó alkalmazások|Application -at nevezzük projekteknek. A Jobeetnál két külön alkalmazásunk lesz: egyik a frontend|Frontend valamint a másik a backend|Backend.

Projekt létrehozása

A jobeet könyvtárból, futtasd le symfonynak a generate:project parancsát, az új projekt létrehozásához.

$ php lib/vendor/symfony/data/bin/symfony generate:project jobeet

Windowson:

c:\> php lib\vendor\symfony\data\bin\symfony generate:project jobeet

A generate:project parancs létrehozza az alap struktúrát|Structure ami szükséges egy symfony projekthez.

Könyvtár Leírás
apps/ A projekt alkalmazásai
cache/ A keretrendszer által gyorsítótárazott fájlok
config/ Projekt szintű konfigurációs fájlok
lib/ Projekt könyvtárai és osztályai
log/ A keretrendszer log fájljai
plugins/ Telepített kiegészítők
test/ Egység (unit) és funkcionális teszt fájlok
web/ A web gyökérkönyvtára (lásd lentebb)

note

Miért generál ilyen sok fájlt a symfony? Egyik fő előnye az ilyen keretrendszer használatának, hogy egységesítsd a fejlesztéseidet. Köszönhetően a symfony alap fájl- illetve könyvtár struktúrájának, bármilyen fejlesztő aki rendelkezik symfonys alapismeretekkel, át tudja venni akármilyen symfonys projekt továbbfejlesztését. Percek alatt képes lesz megérteni a kódot, kijavítani a hibákat, és új funkciókat adni ahhoz.

A generate:project parancs továbbá létrehozott egy symfony parancsikont a Jobeet projekt gyökérkönyvtárában, hogy csökkentse a leütött billentyűknek a számát egy parancs futtatásakor.

Mostantól, ahelyett hogy a teljes elérési útvonalat megadnád a symfonyhoz, csak a symfony parancsot fogjuk használni.

Alkalmazás létrehozása

Most hozd létre a frontend nevű alkalmazást a generate:app parancs futtatásával:

$ php symfony generate:app --escaping-strategy=on --csrf-secret=UniqueSecret frontend

tip

Mivel a symfony parancsikon futtatható, mostantól a Unix felhasználók kicserélhetik a 'php symfony' parancsot './symfony' -ra.

Windowson átmásolhatod a 'symfony.bat' fájlt a projekted gyökérkönyvtárába és használhatod a 'symfony' parancsot 'php symfony' helyett:

c:\> copy lib\vendor\symfony\data\bin\symfony.bat .

Az generate:app parancs az argumentumként megadott alkalmazás nevét használva létrehozza az alkalmazás számára az alap könyvtárstruktúrát az apps/frontend könyvtárban.

Könyvtár Leírás
config/ Alkalmazás konfigurációs fájlok
lib/ Alkalmazás könyvtárai és osztályai
modules/ Alkalmazás (MVC) kódja
templates/ Globális template fájlok

tip

Az összes symfony parancsot a projekt gyökérkönyvtárából kell futtatnod, kivételes esetben szólunk.

Amikor lefuttattad a generate:app parancsot, további két biztonsághoz kapcsolódó beállítást is megadtunk:

  • --escaping-strategy: Engedélyezni a kimenet escape-elését (feloldójelezését) az XSS támadások megelőzése érdekében
  • --csrf-secret: Engedélyezi a session tokeneket a formokban a CSRF támadások megelőzése érdekében

Azzal, hogy átadtuk ezt a két opcionális kapcsolót, biztosítottuk jövőbeli fejlesztéseinket két, széleskörben elterjedt sebezhetőséggel szemben. Így van, a symfony automatikusan biztonsági|Security intézkedéseket hajt végre érdekünkben.

note

Ha még nem hallottál a XSS-ről vagy a CSRF-ről, akkor szentelj egy kis időt ezeknek a biztonsági sebezhetőségek áttanulmányozására.

A symfony

A projekted által használt symfony verzióját az alábbi paranccsal kaphatod meg:

$ php symfony -V

A -V' kapcsoló egyben megjeleníti a symfony telepítési könyvtárának az útvonalát, mely aconfig/ProjectConfiguration.class.php` -ben található:

// config/ProjectConfiguration.class.php
require_once '/Users/fabien/work/symfony/dev/1.2/lib/autoload/sfCoreAutoload.class.php';

A hordozhatóság érdekében cseréld ki az abszolút elérési útvonalat a symfonyhoz relatívra:

// config/ProjectConfiguration.class.php
require_once dirname(__FILE__).'/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';

Így ha átmozgathatod a Jobeet projekt könyvtárát valahova máshova, az akkor is működni fog.

A Környezetek

Ha megnézed a web/ könyvtárat, két PHP fájlt találsz: Egy index.php-t és egy frontend_dev.php-t. Ezeket a fájlokat front controller|Front Controller (elülső vezérlő) -nek nevezik: az alkalmazáshoz befutó kérések rajtuk keresztül történnek. Hogy miért van két különböző front controller, amikor nekünk csak egy alkalmazásunk van?

Mindkét fájl ugyanarra az alkalmazásra mutat, de két különböző környezetet használnak. A fejlesztés során, leszámítva azt az esetet amikor közvetlenül az ,,éles szerveren'' fejlesztesz, szükség van környezetekre.

  • A fejlesztési környezet: Ez a környezet webfejlesztők számára hasznos. Ebben a környezetben történik a hibák javítása, funkciók hozzáadása, stb.
  • A teszt környezet: Ebben a környezetben történik az alkalmazás automatikus tesztelése.
  • A bemutatói környezet: Ebben a környezetben megrendelő tesztelheti az alkalmazást, jelenthet hibákat vagy hiányzó funkciókat.
  • Az éles környezet: A környezet, melyet a végfelhasználók használnak.

Mi tesz egy alkalmazást egyedivé? A fejlesztési környezetben például az alkalmazásnak naplóznia kell az összes részletét egy kérésnek, hogy elősegítse a hibakeresést, ellenben a gyorsítótárazásnak kikapcsolva kell lennie, hogy a változtatások azon nyomban érvénybe lépjenek. Tehát a fejlesztési környezet a fejlesztő munkáját segíti elő. Természetesen a legjobb példa erre, amikor egy kivétel|Exception handling történik. A hibakeresés felgyorsítása érdekében, a symfony megjeleníti a böngészőben a kivételt a hozzá tartozó összes információval.

Egy kivétel a fejlesztési környezetben

Az éles környezetben a gyorsítótárazásnak bekapcsolt állapotban kell lennie, és természetesen testreszabott hibaüzeneteket kell megjelenítenie a kivételek helyett. Szóval az éles környezet a gyorsaságra és a felhasználói élmény fokozására van optimalizálva.

Egy kivétel az éles környezetben

Egy symfonys környezet egyedi beállításokból áll. A symfony keretrendszer három ilyet tartalmaz alapértelmezetten: fejlesztési (dev), teszt (test), éles (prod). A 22. nap során, megtanulod majd hogyan hozhatsz létre olyan környezetet, mint például a bemutatói (staging).

Ha megnyitod a front controller fájlokat, látni fogod, hogy tartalmuk a környezeti beállításokat leszámítva megegyezik.

// web/index.php
<?php
 
require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
 
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false);
sfContext::createInstance($configuration)->dispatch();

note

Egy új symfonys környezet felvételéhez csak létre kell hoznunk egy új front controllert. Később megnézzük hogyan változtassuk meg a beállításait egy környezetnek.

Webszerver Beállítás: A ronda verzió

Az előző részben létrehoztunk egy könyvtárat ahol tároljuk a Jobeet projektet. Ha valahová a web gyökérkönyvtár alá helyezted, már el tudod érni azt a böngészőn keresztül.

Természetesen mivel nem igényel különösebb beállítást, nagyon gyors beüzemelni, de próbáld csak meg elérni a config/databases.yml fájlt a böngésződön keresztül, hogy megértsd mik a következményei a lusta hozzáállásnak. Ha a felhasználó tudja, hogy az oldal symfonyval készült, képes lesz hozzáférni sok kényes fájlhoz.

Soha ne használd ezt e konfigurációt éles szerveren! A következő fejezetben megtanulhatod, hogyan kell megfelelően beállítani webszervered.

Webszerver beállítás: A biztonságos verzió

Tanácsos csak olyan fájlokat helyezni a web gyökérkönyvtár alá, melyeket el kell érnie a böngészőnek, mint például a stíluslapok, javascriptek, és képek. Azt javasuljuk, hogy ezeket a fájlokat a symfony projekt web/ alkönyvtárában tárold.

Ha belenézel ebbe a könyvtárba, találni fogsz néhány alkönyvtárat a kapcsolódó fájlok tárolásához (css/ és images/) és két front controller fájlt. A front controllerek az egyetlen olyan PHP fájlok, melyeknek a web gyökérkönyvtárában kell lenniük. Minden egyéb PHP fájlt elrejthetünk a böngésző elől, ami jó ötlet amíg a biztonságot|Security szem előtt tartjuk.

Webszerver beállítás

Itt az ideje, hogy megváltoztasd az Apache konfigurációját, hogy elérhetővé tedd a projektet mindenki számára.

Keresd meg és nyisd meg szerkesztésre a httpd.conf konfigurációs fájlt és illeszd ezt annak legvégére:

# Figyelj, hogy ez a sor csak egyszer szerepeljen a konfigurációban
NameVirtualHost 127.0.0.1:8080

# Ezek a Jobeethez kapcsolódó beállítások
Listen 127.0.0.1:8080

<VirtualHost 127.0.0.1:8080>
  DocumentRoot "/home/sfprojects/jobeet/web"
  DirectoryIndex index.php
  <Directory "/home/sfprojects/jobeet/web">
    AllowOverride All
    Allow from All
  </Directory>

  Alias /sf /home/sfprojects/jobeet/lib/vendor/symfony/data/web/sf
  <Directory "/home/sfprojects/jobeet/lib/vendor/symfony/data/web/sf">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

note

Az /sf alias|Alias (Apache) hozzáférést ad a képekhez és javascript fájlokhoz melyek szükségesek ahhoz, hogy megfelelően jelenítse meg a symfony alapértelmezett oldalait|Default symfony Pages, és a webfejlesztői eszköztárat|Web Debug Toolbar.

Windowson az Alias -t tartalmazó sort valami hasonlóra kell kicserélned:

Alias /sf "c:\development\sfprojects\jobeet\lib\vendor\symfony\data\web\sf"

És a /home/sfprojects/jobeet/web útvonalat ehhez hasonlóra:

c:\development\sfprojects\jobeet\web

Ez a beállítás arra készteti az Apacheot, hogy a 8080 -as porton figyelje a bejövő kéréseket, így a Jobeet a következő URL -en keresztül lesz elérhető:

http://~localhost~:8080/

Megváltoztathatod a 8080 -t bármire, de előnyös az 1024 -nél nagyobbat választani, mivel az nem igényel adminisztrátori jogosultságokat.

sidebar

Dedikált Domain Név beállítása a Jobeetnak

Ha adminisztrátori jogosultságokkal rendelkezel, jobb konfigurálni virtual hostokat|Virtual Host, ahelyett, hogy mindig új portot adnál hozzá új projekt nyitásakor. Helyette rendelj hozzá egy domain nevet és vegyél fel egy ServerName-t.

# Ezek a Jobeethez kapcsolódó beállítások
<VirtualHost 127.0.0.1:80>
  ServerName jobeet.localhost
  <!-- ugyanaz a konfiguráció mint korábban -->
</VirtualHost>

A jobeet.localhost domain nevet, melyet az Apacheban konfiguráltunk lokálisan is deklarálni kell. Ha Linuxot használsz ezt az /etc/hosts fájl szerkesztésével tudod megadni. Windows XP felhasználóknak a C:\WINDOWS\system32\drivers\etc\ könyvtárban lévő hosts fájlt kell szerkeszteniük.

Add hozzá a következő sort:

127.0.0.1         jobeet.localhost

Az új konfiguráció tesztelése

Indítsd újra az Apacheot és ellenőrizd, hogy eléred -e az alkalmazásodat a böngészőben ezen: http://localhost:8080/index.php/, vagy ezen http://jobeet.localhost/index.php/ a címen, attól függően, hogy melyik módját választottad az Apache konfigurálásának az előző fejezetben.

Gratulálunk

note

Ha installálva van az Apache mod_rewrite|mod_rewrite (Apache) modul, eltávolíthatod az index.php/ részt az URL-ből. Ez a rewriting szabályoknak köszönhető melyek a web/~.htaccess|.htaccess (Apache)~ fájlban vannak definiálva.

Próbáld meg elérni az alkalmazást fejlesztői környezetben is: Nyisd meg a következő URL-t:

http://jobeet.localhost/frontend_dev.php/

Mostmár látnod kell a hibakereső eszköztárat a jobbfelső sarokban, a hozzá tartozó kis ikonokkal, ami azt bizonyítja hogy az sf/ alias konfiguráció megfelelő.

hibakereső eszköztár

A hibakereső eszköztár|Web Debug Toolbar jelen van az összes oldalon a fejlesztői környezetben. Sok információhoz juthatsz hozzá, ha ráklikkelsz a különböző fülekre: az aktuális alkalmazás konfigurációja, az aktuális kérésnek a naplója, az SQL parancsok melyek lefutottak az adatbázison, memória és betöltési idő információk

note

A beállítások kicsit különbözhetnek ha egy IIS szerveren szeretnéd futtatni a symfony-t Windowson környezetben. Segítséget a beállításához a kapcsolódó leírásban találsz.

Subversion

Ajánlott verziókövető rendszert használni webfejesztés során. Használatával lehetőségünk van:

  • magabiztosan dolgozni
  • visszaállni egy előző verzióra ha egy változtatás elront valamit
  • több emberrel dolgozni ugyanazon a projekten
  • az alkalmazás összes verziójához hozzáférni

Ebben a fejezetben leírjuk hogyan használd a Subversiont symfonyval. Ha egy másik verziókövető rendszert használsz valószínűleg hasonlóképpen tudod azt beállítani.

Feltételezzük, hogy már van hozzáférésed egy Subversion szerverhez, és eltudod azt érni HTTP -n keresztül.

tip

Ha nem áll rendelkezésedre Subversion szerver, létrehozhatsz egy repository-t (tárat) ingyenesen a Google Code -on vagy csak keress rá a "free subversion repository" kifejezésre a Googleben a több választási lehetőség érdekében.

Először, készíts egy tárat a jobeet projektnek a repository szerveren:

$ svnadmin create /path/to/jobeet/repository

A gépeden hozd létre az alap könyvtárstruktúrát:

$ svn mkdir -m "created default directory structure" http://svn.example.com/jobeet/trunk http://svn.example.com/jobeet/tags http://svn.example.com/jobeet/branches

És checkoutolj az üres trunk/ könyvtáron:

$ cd /home/sfprojects/jobeet
$ svn co http://svn.example.com/jobeet/trunk/ .

Ezután töröld a cache/ és log/ könyvtárak tartalmát, mivel azokat nem szeretnénk feltölteni a repository szerverre.

$ rm -rf cache/* log/*

Most bizonyosodj meg arról, hogy adtál írásjogot a cache és log könyvtáraknak, ezáltal a webszervered tudja írni azokat:

$ chmod 777 cache/ log/

Importáld az összes fájlt és könyvtárt:

$ svn add *

Mivel sosem szeretnénk commit-olni (beküldeni) a fájlokat melyek a cache/ és log/ könyvtárakban vannak, fel kell venned azokat egy tiltó listára:

$ svn propedit svn:ignore cache

Az SVN -hez beállított alapértelmezett szövegszerkesztőnek elindult. A Subversionnek a könyvtár teljes tartalmát tiltólistára kell helyeznie:

*

Mentsd el és kiléphetsz. Készen is vagy.

Ismételd meg az eljárást a log/ könyvtárra:

$ svn propedit svn:ignore log

És írd be:

*

Végül, commit-old ezeket a változásokat a repository-ra:

$ svn import -m "made the initial import" . http://svn.example.com/jobeet/trunk

tip

Windows~ felhasználók használhatják a nagyszerű TortoiseSVN klienst a subversion repository kezelésére.

Holnap találkozunk

Nos, az idő mára lejárt! Még ha nem is kezdtünk el beszélni a symfonyról, beállítottunk egy biztos fejlesztési környezetet, beszéltünk a legjobb webfejlesztési praktikákról, és készen állunk a kódolásra.

Holnap felfedjük, hogy miről szól majd a feladat, és beszélünk a funkciókról melyeket meg kell valósítanunk kell a lecke során.

note

Ha szeretnéd, letöltheted a mai vagy bármelyik nap során készített kódot, a nap mint nap frissülő, hivatalos Jobeet SVN repository-ból. (http://svn.jobeet.org/doctrine/).

Például a mai napon készített kódot release_day_01 tag -ként találod meg:

  $ svn co http://svn.jobeet.org/doctrine/tags/release_day_01/ jobeet/