przewiń do treści

Symfony w przykładach

Włodzimierz Gajda

Uwagi

Uwaga #1 (2011-08-17)

Instalacja XAMPP oraz symfony w systemie Windows 7 (64 bit)

1. Instalacja pakietu XAMPP - wersja xampp-win32-1.7.4-VC6-installer.exe

Uwaga! Jeśli pakiet XAMPP instalujesz w folderze C:\xampp wówczas nie musisz wyłączać kontroli konta użytkownika.

Uruchom program instalacyjny xampp-win32-1.7.4-VC6-installer.exe. Program instalacyjny należy uruchomić na prawach administratora systemu.

We wszystkich kolejnych oknach dialogowych pozostaw domyślne ustawienia. Zwróć uwagę, by pakiet XAMPP zainstalować w folderze głównym na dysku, np. C:\xampp.

Po zakończeniu instalacji uruchom serwery Apache oraz MySQL. W celu sprawdzenia, czy instalacja i uruchomienie serwerów Apache i MySQL powiodło się włącz przeglądarkę internetową i odwiedź nią adres:

http://localhost

Instalację pakietu XAMPP zakończ usuwając wszystkie pliki z folderu c:\xampp\htdocs\.

2. Uaktualnienie biblioteki PEAR

Oprogramowanie XAMPP w wersji xampp-win32-1.7.4-VC6-installer.exe zawiera błędy w bibliotece PEAR. Przekonasz się o tym wydając w wierszu poleceń komendy:

c:
cd\
cd xampp
cd php

pear config-show

Zwróć uwagę, że niektóre z wyświetlonych folderów są błędne (prowadzą np. do nieistniejącego folderu c:\php).

W celu naprawienia i uaktualnienia biblioteki PEAR w wierszu poleceń wydaj komendy:

c:
cd\
cd xampp
cd php


pear config-set doc_dir      c:\xampp\php\pear\docs
pear config-set download_dir c:\xampp\php\tmp
pear config-set test_dir     c:\xampp\php\tests
pear config-set data_dir     c:\xampp\php\data

pear upgrade all

3. Aktualnienie konfiguracji PHP

W pliku konfiguracyjnym c:\xampp\php\php.ini wprowadź następujące zmiany:

  • wyłącz krótkie znaczniki PHP (opcja short_open_tag),
  • włącz rozszerzenie XSL (jest ono konieczne do korzystania z Propel-a).

W tym celu dodaj średnik przed wierszem włączającym opcję short_open_tag:

;short_open_tag = On

(Średnik powoduje zakomentowanie powyższej linijki. Możesz ją oczywiście całkowicie usunąć z pliku php.ini.)

W celu włączenia rozszerzenia XSL w pliku php.ini dodaj wpis:

extension=php_xsl.dll

Po wprowadzeniu zmian zrestartuj serwer Apache. Użyj do tego przycisków Start/Stop w panelu administracyjnym XAMPP-a.

4. Instalacja symfony

W wierszu poleceń wydaj komendy:

pear channel-discover pear.symfony-project.com
pear install symfony/symfony-1.4.13

Uwaga! Jeśli powyższe komendy wydasz bez wykonania aktualizacji biblioteki PEAR wówczas ujrzysz komunikat:

ERROR: unable to unpack ... symfony-1.4  ...  .tgz

Koniecznie wykonaj krok 2. „Uaktualnienie biblioteki PEAR”.

5. symfony - konieczna modyfikacja generowanego kodu SQL dla serwera MySQL

Jeśli korzystasz z Propel-a, to po uaktualnieniu serwera MySQL do nowszej wersji polecenie:

symfony propel:build --all --no-confirmation

wygeneruje błąd:

...
 )Type=InnoDB
[propel-sql-exec] SQLSTATE[42000]: Syntax error or access violation: 1064 You ha
ve an error in your SQL syntax; check the manual that corresponds to your MySQL
server version for the right syntax to use near 'Type=InnoDB' at line 16

Powodem jest to, że wygenerowany kod SQL tworzący tabele zawiera przestarzały zapis Type=InnoDB, np.:

CREATE TABLE `xxxxx`
(
...
)Type=InnoDB

W celu usunięcia tego błędu należy w pliku:

C:\xampp\php\PEAR\
   symfony\plugins\sfPropelPlugin\lib\vendor\propel-generator\
       classes\propel\engine\builder\sql\mysql\MysqlDDLBuilder.php

zmodyfikować wiersz #156. Kod:

$script .= "Type=$mysqlTableType";

zmień na:

$script .= "Engine=$mysqlTableType";

Jeśli wykorzystujesz Propel 1.5 możesz spróbować dodać opcje konfiguracyjne w pliku config/properties.ini (nie testowałem tego):

propel.mysql.tableType           =  InnoDB
propel.mysql.tableEngineKeyword  =  engine

Uwaga #2 (2011-08-18)

Problem z przykładem 21.

W przykładzie 21. przed wykonaniem kroku 7. należy wykonać modyfikację z listingu 21.3.

Przed wydaniem komendy symfony guard:create-user należy w pliku backend/lib/myUser.class.php zmodyfikować klasę bazową.

Reklama

Szkolenia z Symfony 2.0