Symfony

Symfony jest to framework stworzony za pomocą języka PHP z zastosowaniem wzorca MVC. Należy do jednego z najszybszych frameworków PHP dlatego też chętnie jest wykorzystywany do wielu aplikacji. Według danych przedstawionych przez stronę www.sitepoint.pl, framework ten znajduje się na drugim miejscu pod względem popularności. Główną cechą frameworka Symfony jest to, że umożliwia użytkownikowi programowanie obiektowe a także możliwość kierowania sesjami.

Framework Symfony został wyposażony w szeroką gamę wtyczek a także dodatków czy też różnych możliwości konfiguracyjnych. Istotnym faktem jest, że Symfony jest w pełni zgodny z najwyższymi standardami czy też wzorcami projektowania aplikacji. Równie ważną cechą tego frameworka jest posiadanie wbudowanej ochrony przed atakami czy też wbudowanej internacjonalizacji.

Symfony w bardzo intuicyjny sposób można zainstalować i jednocześnie konfigurować na większości dostępnych platform. Dodatkowo charakteryzuje się łatwością w rozbudowie oraz możliwościach związanych z innymi bibliotekami. Symfony pozwala na zarządzanie sesjami a przy tym na walidację formularzy a także różnych treści. Jest frameworkiem zupełnie niezależnym od danego systemu bazodanowego.

Struktura projektu Symfony jest strukturą dość elastyczną i składa się między innymi z takich katalogów jak:

  • Katalog src (w katalogu src znajdują się instancje aplikacji tworzone przez programistów)
  • Katalog web (jest to miejsce przeznaczone dla wszystkich statycznych oraz publicznych plików, na przykład dla obrazów, plików JavaScript czy arkuszy stylów)
  • Katalog vendor (jest to katalog, który przechowuje pakiety wykorzystywane w projekcie)
  • Katalog app (w folderze app przechowywana jest klasa AppKernel, jednocześnie będąca punktem wejścia do konfiguracji aplikacji).

Framework Symfony dodatkowo wykorzystuje technologię scaffoldingu, która jest metodą budowania aplikacji wykorzystujących bazy danych. Technologia ta zakłada, że programista tworzy specyfikację opisującą strukturę w bazie danych a kompilator generuje kod możliwy do czytania czy aktualizowania wpisów w bazie.

Równie istotną cechą Symfony jest to, że jestem systemem pakietów. Pakiet (ang. bundle) jest wtyczką (ang. plugin) w innych programach. Pakiety w systemie zapewniają elastyczność podczas używania pakietów funkcyjnych wbudowanych w system. Pozwala to na prosty wybór odpowiednich funkcjonalności dla naszej aplikacji, dzięki czemu możemy w łatwy sposób całość zoptymalizować.

Przykładowy kod w Symfony

Symfony Przykład #1

  <?php
  class MyClass
  {
    protected $parameter_holder = null;
   
    public function initialize ($parameters = array())
    {
      $this->parameter_holder = new sfParameterHolder();
      $this->parameter_holder->add($parameters);
    }
   
    public function getParameterHolder()
    {
      return $this->parameter_holder;
    }
  }
  ?>
  
Symfony Przykład #2

  <?php
  define('SF_ROOT_DIR',    realpath(dirname(__FILE__).'/..'));
  define('SF_APP',         'myapp');
  define('SF_ENVIRONMENT', 'prod');
  define('SF_DEBUG',       false);
   
  require_once(SF_ROOT_DIR.DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.SF_APP.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'config.php');
   
  sfContext::getInstance()->getController()->dispatch();
  ?>