Integracja Open Power Template z KohanaPHP framework

Maj 13th, 2008 · 5 Comments ·

Są dwa sposoby, aby zintegrować system szablonów OPT z frameworkiem Kohana. Pierwszy, łatwiejszy i zarazem bardziej elegancki, nie wymaga żadnych modyfikacji w OPT – należy ściągnąć OPT i umieścić go w katalogu system/vendor/opt. Tworzymy również katalog application/templates, a w nim katalogi _compile oraz _cache.

Poniżej prezentuję zaś kod, który zmusi nasz OPT do działania:

define ('OPT_DIR', SYSPATH .'vendor/opt/'); require (SYSPATH .'vendor/opt/opt.class.php'); $this->opt = new OptClass; $this->opt->root = APPPATH .'templates/'; $this->opt->compile = APPPATH .'templates/_compile/'; $this->opt->cache = APPPATH .'templates/_cache/'; $this->opt->plugins = OPT_DIR .'plugins/';

I od tegoż momentu możemy już korzystać z naszego $this->opt.

Drugi sposób na uruchomienie Open Power Template z KohanaPHP to taka modyfikacja OPT, aby był częścią frameworka (dokładniej: biblioteką). Zaletą takiego rozwiązania jest to, że nie trzeba niczego „require’ować” (wystarczy tylko $this->opt = new Opt;). Utrudnieniem są jednak aktualizacje OPT – trzeba na nowo modyfikować pliki. Poniżej przedstawiam rozwiązanie krok po kroku:

  1. Rozpakować wszystkie pliki oprócz opt.class.php do system/libraries/opt
  2. Rozpakować plik opt.class.php w system/libraries i nadać mu nazwę Opt.php (z wielkiej litery)
  3. Linie 69-72: { define('OPT_DIR', './'); } zamienić na: if(!defined('OPT_DIR')) { $docroot = pathinfo(str_replace('\\', '/', realpath(__FILE__))); define('OPT_DIR', $docroot['dirname']. '/opt/'); }
  4. Linia 144: class optClass zamienić na class Opt_Core

Tak, jak w pierwszym rozwiązaniu, muszą oczywiście istnieć katalogi application/templates/_compile oraz _cache.

Takim sposobem posiadamy rozbudowany system szablonów OPT w frameworku Kohana.

  1. Open Power Template – oficjalna strona
  2. Open Power Template – Wikipedia
  3. KohanaPHP framework

Tags: PHP

Jest już 5 komentarzy ↓

  • Zyx // maj 15, 2008 at 10:03

    No, tych miejsc do zmiany nazwy klasy jest więcej – we wszystkich interfejsach zdefiniowanych w opt.class.php metody „setOptInstance()” mają rzutowanie typów, lecz poza tym (na szczęście dla modyfikatorów :)) wszystko wydaje się być OK.

  • Nowaker // maj 15, 2008 at 10:57

    Zintegrowałem OPT z Kohaną tym drugim sposobem już w grudniu i od tamtego czasu do dziś dzień nie było żadnych błędów :) Ale racja, w definicjach funkcji zadeklarowano typ optClass i w przypadku wywołania tej funkcji powinna się zrobić kicha. Przyjrzę się dokładniej kodowi źródłowemu i poprawię.

  • eXtreme // maj 25, 2008 at 19:18

    Nie lepiej zrobić klasę Opt_Core extends optClass? Wtedy byłoby najlepiej bo byłoby i zintegrowane „ładnie” z kohaną, i nie trzeba by modyfikować kodu samej bilbioteki (którą możnaby umieścić.. gdziekolwiek) :P

  • Nowaker // maj 25, 2008 at 19:38

    Opt_Core extends optClass to jeszcze inny sposób, nie wpadłem na niego. Acz najlepszy jest i tak ten pierwszy sposób, nie wymaga modyfikacji, ani też tworzenia nowej klasy dziedziczącej po optClass :)

  • Integracja Open Power Template 1.x z KohanaPHP 2.2 | #!/bin/nwkr devblog // lis 6, 2008 at 17:45

    [...] roku temu zamieściłem sposób na integrację systemu szablonów Open Power Template z frameworkiem KohanaPHP. Po pewnym [...]

Zostaw swój komentarz

W treści komentarza obowiązuje składnia Markdown.
**pogrubienie**, *kursywa*, nowy akapit - dwa znaki nowej linii