Heim  >  Artikel  >  Backend-Entwicklung  >  Analyse der Methode zur Integration von smarty und adodb in Codeigniter

Analyse der Methode zur Integration von smarty und adodb in Codeigniter

不言
不言Original
2018-06-14 15:18:141657Durchsuche

In diesem Artikel wird hauptsächlich die Methode zur Integration von Smarty und ADODB in Codeigniter vorgestellt und die Verwendungsfähigkeiten der Codeigniter-Bibliothek anhand von Beispielen analysiert.

Das Beispiel dieses Artikels beschreibt die Integration von smarty und adodb in die Codeigniter-Methode. Geben Sie es als Referenz an alle weiter. Die Details lauten wie folgt:

Um Ihre eigene Bibliothek in CodeIgniter zu schreiben, müssen Sie zwei Dateien schreiben, eine davon ist die Datei init_myclass.php unter application/init (falls vorhanden). kein Init-Verzeichnis, selbst erstellen). Die andere besteht darin, die Datei myclass.php im Verzeichnis application/libraries zu erstellen.

Hier ist myclass Ihr Klassenname. Für einige Regeln können Sie einfach das Handbuch lesen. Ich werde hier nur die Schritte erklären.

1) Erstellen Sie mysmarty.php bzw. adodb.php unter Anwendung/Bibliotheken
Der Inhalt der Datei mysmarty.php lautet wie folgt:

<?php
// load Smarty library
require(&#39;Smarty/Smarty.class.php&#39;);
// The setup.php file is a good place to load
// required application library files, and you
// can do that right here. An example:
// require(&#39;guestbook/guestbook.lib.php&#39;);
class MySmarty extends Smarty {
 function MySmarty()
 {
    // Class Constructor.
    // These automatically get set with each new instance.
    $this->Smarty();
    $basedir=dirname(__FILE__);
    $this->template_dir = "$basedir/templates/";
    $this->compile_dir = "$basedir/templates_c/";
    $this->config_dir  = "$basedir/configs/";
    $this->cache_dir  = "$basedir/cache/";
    //$this->compile_check = true;
    //this is handy for development and debugging;never be used in a production environment.
    //$smarty->force_compile=true;
    $this->debugging = false;
    $this->cache_lifetime=30;
    $this->caching = 0; // lifetime is per cache
    //$this->assign(&#39;app_name&#39;, &#39;Guest Book&#39;);
 }
}
?>

Der Dateipfad wird je nach Situation geändert. Der Pfad der Datei beginnt relativ zum Hauptverzeichnis Ihrer Website, nicht zum aktuellen Verzeichnis der aktuellen Datei. Smarty.class.php'); ist nicht relativ zum Verzeichnis application/libraries, sondern relativ zum Verzeichnis $_SERVER['DOCUMENT_ROOT']. Der Inhalt der Datei

adodb.php lautet wie folgt:

<?php if (!defined(&#39;BASEPATH&#39;)) exit(&#39;No direct script access allowed&#39;);
class Adodb
{
  function Adodb()
  {
    //$dsn="dbdriver://username:password@server/database"
    $dsn = &#39;mysql://user:password@localhost/xxxx&#39;;
    require_once("adodb/adodb.inc".EXT);
    $this->adodb =& ADONewConnection($dsn);
    $this->adodb->Execute("set NAMES &#39;utf8&#39;"); 
  }
}
?>

2) Erstellen Sie init_adodb.php bzw. init_mysmarty.php in der Anwendung /init-Verzeichnis.

Der Inhalt der Datei init_adodb.php lautet wie folgt:

<?php if (!defined(&#39;BASEPATH&#39;)) exit(&#39;No direct script access allowed&#39;);
$obj =& get_instance();
$obj->adodb = new Adodb($obj);
$obj->ci_is_loaded[] = &#39;adodb&#39;;

Der Inhalt der Datei init_mysmarty.php lautet wie folgt:

<?php if (!defined(&#39;BASEPATH&#39;)) exit(&#39;No direct script access allowed&#39;);
if ( ! class_exists(&#39;MySmarty&#39;))
{
  require_once(APPPATH.&#39;libraries/mysmarty&#39;.EXT);
}
$obj =& get_instance();
$obj->mysmarty = new MySmarty();
$obj->ci_is_loaded[] = &#39;mysmarty&#39;;
?>

3) Verwenden Sie sie
, um eine Datei zu erstellen, die Sie im Verzeichnis application/controllers benötigen. Sie können adodb und smarty wie folgt verwenden.

<?php
class Test extends Controller {
 function Test()
 {
  parent::Controller(); 
  $this->load->library(&#39;mysmarty&#39;);
  $this->load->library(&#39;adodb&#39;);
 }
 function index()
 {
 $this->load->library(&#39;adodb&#39;);
 $row = $this->adodb->adodb->getrow(&#39;SELECT * FROM admin&#39;);
    $this->mysmarty->assign("row",$row);
    $this->mysmarty->display("test.tpl");
 }
}
?>

Ich weiß nicht, warum adodb hier zweimal benötigt wird, nach der offiziellen Methode sollte es nur einmal benötigt werden, aber seine Methode ist falsch Mich. Vielleicht liegt es daran, dass ich noch nicht viel über CodeIgniter weiß. Ich werde sehen, ob es eine Lösung gibt, wenn ich tiefer recherchiere. Aber zumindest das hier funktioniert im Moment.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Informationen zur Nginx-Rewrite-Regelkonfiguration für die Symfony- und CodeIgniter-Frameworks von PHP

Informationen zur Nutzungsanalyse des CI-Frameworks $this->load->library()

Das obige ist der detaillierte Inhalt vonAnalyse der Methode zur Integration von smarty und adodb in Codeigniter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn