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

不言
Libérer: 2023-04-01 08:12:01
original
1647 Les gens l'ont consulté

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;);
 }
}
?>
Copier après la connexion

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;"); 
  }
}
?>
Copier après la connexion

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;;
Copier après la connexion

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;;
?>
Copier après la connexion

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");
 }
}
?>
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal