Integracja Open Power Template z KohanaPHP framework

maj 13th, 2008 · 4 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: KohanaPHP

4 responses so far ↓

  • Zyx // maja 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 // maja 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 // maja 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 // maja 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 :)

Leave a Comment