Maison  >  Article  >  développement back-end  >  Analyse sur la méthode d'intégration de smarty et adodb dans Codeigniter

Analyse sur la méthode d'intégration de smarty et adodb dans Codeigniter

不言
不言original
2018-06-14 15:18:141586parcourir

Cet article présente principalement la méthode d'intégration de smarty et adodb dans Codeigniter, et analyse les compétences d'utilisation de la bibliothèque Codeigniter sous forme d'exemples. Les amis dans le besoin peuvent s'y référer

Les exemples de cet article. décrire l'intégration de smarty et adodb dans la méthode Codeigniter. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Pour écrire votre propre bibliothèque dans CodeIgniter, vous devez écrire deux fichiers, l'un est le fichier init_myclass.php sous application/init (s'il y a pas de répertoire init, créez-le vous-même). L'autre consiste à créer le fichier myclass.php dans le répertoire application/libraries.

Ici, myclass est le nom de votre classe. Vous pouvez simplement lire le manuel pour connaître certaines règles. Je vais simplement vous expliquer les étapes ici.

1) Créez respectivement mysmarty.php et adodb.php sous application/libraries
Le contenu du fichier mysmarty.php est le suivant :

<?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;);
 }
}
?>

Le chemin du fichier est modifié en fonction de la situation spécifique. Le chemin du fichier commence par rapport au répertoire principal de votre site Web, et non au répertoire actuel du fichier actuel, comme le require('Smarty/Smarty) ci-dessus. .class.php'); Ce n'est pas relatif au répertoire application/libraries, mais relatif au répertoire $_SERVER['DOCUMENT_ROOT']. Le contenu du fichier

adodb.php est le suivant :

<?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) Créez respectivement init_adodb.php et init_mysmarty dans l'application /init répertoire .php.

Le contenu du fichier init_adodb.php est le suivant :

<?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;;

Le contenu du fichier init_mysmarty.php est le suivant :

<?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) Utilisez-les
Créez un fichier dont vous avez besoin dans le répertoire application/controllers Vous pouvez utiliser adodb et smarty comme ceci.

<?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");
 }
}
?>

Je ne sais pas pourquoi adodb est nécessaire deux fois ici. Selon la pratique officielle, il ne devrait être nécessaire qu'une seule fois, mais sa méthode l'est. mauvais pour moi. C'est peut-être parce que je ne connais pas encore grand-chose à CodeIgniter. Je verrai s'il existe une solution si je creuse plus profondément. Mais au moins celui-ci fonctionne pour le moment.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

À propos de la configuration des règles de réécriture Nginx pour les frameworks Symfony et CodeIgniter de PHP

À propos du framework CI Analyse de l'utilisation de $this->load->library()

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn