CI(Codeigniter)的Setting增强配置类实例,cicodeigniter_PHP教程
CI(Codeigniter)的Setting增强配置类实例,cicodeigniter
本文实例讲述了Codeigniter的Setting增强配置类。分享给大家供大家参考,具体如下:
该增强配置类适用配置项要求比较灵活的项目。可实现预加载配置、组配置、单项调取、增、删、改配置,无需在改动config文档。
使用:
在需要的地方
复制代码 代码如下:$this->load->library('setting');
对于预加载项可以使用复制代码 代码如下:$this->config->item();进行获取
对于临时调取项可以使用复制代码 代码如下:$this->setting->item();进行获取
首先,创建数据表
CREATE TABLE `system_settings` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `key` varchar(64) NOT NULL DEFAULT '', `value` mediumtext NOT NULL, `group` varchar(55) NOT NULL DEFAULT 'site', `autoload` enum('no','yes') NOT NULL DEFAULT 'yes', PRIMARY KEY (`id`,`key`), KEY `name` (`key`), KEY `autoload` (`autoload`) ) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
然后,在application/libraries目录下创建setting.php,内容如下
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); class Setting { private $_ci; private $settings_autoloaded; private $settings = array(); private $settings_group = array(); private $settings_db; public function __construct() { $this->_ci = &get_instance(); $this->settings_db = $this->_ci->config->item('settings_table'); $this->autoload(); } // ------------------------------------------------------------------------ // 华丽的分割线 正式开始 // ------------------------------------------------------------------------ /** * 从数据库获取所有自动加载的设置 */ public function autoload() { //如果存在则直接返回 if (!empty($this->settings)) { return $this->settings; } //如果系统不存在数据表则返回false if (!$this->_ci->db->table_exists($this->settings_db)) { return FALSE; } //查询标记为自动加载的项 $this->_ci->db->select('key,value')->from($this->settings_db)->where('autoload', 'yes'); $query = $this->_ci->db->get(); if ($query->num_rows() == 0) { return FALSE; } //循环写入系统配置 foreach ($query->result() as $k => $row) { $this->settings[$row->key] = $row->value; $this->_ci->config->set_item($row->key, $row->value); } //标记会话,避免重复读库 //$this->_ci->session->set_userdata('settings_autoloaded', TRUE); return $this->settings; } // ------------------------------------------------------------------------ /** * 获取单个设定 * * <code> * <?php $this->settings->get('config_item'); ?> * </code> */ public function item($key) { if (!$key) { return FALSE; } //首先检查是否系统已经自动加载 if (isset($this->settings[$key])) { return $this->settings[$key]; } //查询数据库 $this->_ci->db->select('value')->from($this->settings_db)->where('key', $key); $query = $this->_ci->db->get(); if ($query->num_rows() > 0) { $row = $query->row(); $this->settings[$key] = $row->value; return $row->value; } // 查询不到结果则查找系统config,返回值或者false return $this->_ci->config->item($key); } // ------------------------------------------------------------------------ /** * 获取组配置 */ public function group($group = '') { if (!$group) { return FALSE; } $this->_ci->db->select('key,value')->from($this->settings_db)->where('group', $group); $query = $this->_ci->db->get(); if ($query->num_rows() == 0) { return FALSE; } foreach ($query->result() as $k => $row) { $this->settings[$row->key] = $row->value; $arr[$row->key] = $row->value; } return $arr; } // ------------------------------------------------------------------------ /** * 更改设置 */ public function edit($key, $value) { $this->_ci->db->where('key', $key); $this->_ci->db->update($this->settings_db, array('value' => $value)); if ($this->_ci->db->affected_rows() == 0) { return FALSE; } return TRUE; } // ------------------------------------------------------------------------ /** * 新增设置 */ public function insert($key, $value = '', $group = 'addon', $autoload = 'no') { // 检查是否已经被添加的设置 $this->_ci->db->select('value')->from($this->settings_db)->where('key', $key); $query = $this->_ci->db->get(); if ($query->num_rows() > 0) { return $this->edit($key, $value); } $data = array('key' => $key, 'value' => $value, 'group' => $group, 'autoload' => $autoload, ); $this->_ci->db->insert($this->settings_db, $data); if ($this->_ci->db->affected_rows() == 0) { return FALSE; } return TRUE; } // ------------------------------------------------------------------------ /** * 删除设置 */ public function delete($key) { $this->_ci->db->delete($this->settings_db, array('key' => $key)); if ($this->_ci->db->affected_rows() == 0) { return FALSE; } return TRUE; } // ------------------------------------------------------------------------ /** * 删除设置组及成员配置 */ public function delete_group($group) { $this->_ci->db->delete($this->settings_db, array('group' => $group)); if ($this->_ci->db->affected_rows() == 0) { return FALSE; } return TRUE; } } /* End of file Setting.php */ /* Location: ./application/libraries/Setting.php */
最后,打开application/config/config.php,新增
/** * 系统配置表名 */ $config['settings_table'] = "system_settings";
希望本文所述对大家基于Codeigniter框架的PHP程序设计有所帮助。
您可能感兴趣的文章:
- CodeIgniter中使用Smarty3基本配置
- Nginx下配置codeigniter框架方法
- nginx支持codeigniter的pathinfo模式url重写配置写法示例
- 新浪SAE云平台下使用codeigniter的数据库配置
- 使用配置类定义Codeigniter全局变量
- CI(CodeIgniter)框架配置
- CodeIgniter基本配置详细介绍
- 解析CodeIgniter自定义配置文件

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PyCharm est un puissant environnement de développement intégré (IDE) et PyTorch est un framework open source populaire dans le domaine de l'apprentissage profond. Dans le domaine de l'apprentissage automatique et de l'apprentissage profond, l'utilisation de PyCharm et PyTorch pour le développement peut améliorer considérablement l'efficacité du développement et la qualité du code. Cet article présentera en détail comment installer et configurer PyTorch dans PyCharm, et joindra des exemples de code spécifiques pour aider les lecteurs à mieux utiliser les puissantes fonctions de ces deux éléments. Étape 1 : Installer PyCharm et Python

Titre : Le principe de fonctionnement et la méthode de configuration de GDM dans les systèmes Linux Dans les systèmes d'exploitation Linux, GDM (GNOMEDisplayManager) est un gestionnaire d'affichage commun utilisé pour contrôler la connexion à l'interface utilisateur graphique (GUI) et la gestion des sessions utilisateur. Cet article présentera le principe de fonctionnement et la méthode de configuration de GDM, ainsi que des exemples de code spécifiques. 1. Principe de fonctionnement de GDM GDM est le gestionnaire d'affichage de l'environnement de bureau GNOME. Il est chargé de démarrer le serveur X et de fournir l'interface de connexion à l'utilisateur.

Titre : Comment configurer correctement Git dans PyCharm Dans le développement de logiciels modernes, le système de contrôle de version est un outil très important, et Git, en tant que l'un des systèmes de contrôle de version les plus populaires, offre aux développeurs des fonctions puissantes et des opérations flexibles. En tant que puissant environnement de développement intégré Python, PyCharm prend en charge Git, permettant aux développeurs de gérer plus facilement les versions de code. Cet article explique comment configurer correctement Git dans PyCharm pour faciliter un meilleur développement pendant le processus de développement.

Comprendre Linux Bashrc : fonction, configuration et utilisation Dans les systèmes Linux, Bashrc (BourneAgainShellruncommands) est un fichier de configuration très important, qui contient diverses commandes et paramètres qui sont automatiquement exécutés au démarrage du système. Le fichier Bashrc se trouve généralement dans le répertoire personnel de l'utilisateur et est un fichier caché. Sa fonction est de personnaliser l'environnement Bashshell pour l'utilisateur. 1. Environnement de configuration des fonctions Bashrc

PyCharm est un environnement de développement intégré (IDE) couramment utilisé Dans le développement quotidien, l'utilisation de Git pour gérer le code est essentielle. Cet article explique comment configurer Git dans PyCharm et utiliser Git pour la gestion du code, avec des exemples de code spécifiques. Étape 1 : Installer Git Tout d’abord, assurez-vous que Git est installé sur votre ordinateur. S'il n'est pas installé, vous pouvez accéder au [site officiel de Git](https://git-scm.com/) pour télécharger et installer la dernière version de Git.

Comment configurer un groupe de travail dans Win11 Un groupe de travail est un moyen de connecter plusieurs ordinateurs dans un réseau local, ce qui permet de partager des fichiers, des imprimantes et d'autres ressources entre les ordinateurs. Dans le système Win11, configurer un groupe de travail est très simple, suivez simplement les étapes ci-dessous. Étape 1 : Ouvrez l'application « Paramètres ». Cliquez d'abord sur le bouton « Démarrer » du système Win11, puis sélectionnez l'application « Paramètres » dans le menu contextuel. Vous pouvez également utiliser le raccourci « Win+I » pour ouvrir « Paramètres ». Étape 2 : Sélectionnez « Système » Dans l'application Paramètres, vous verrez plusieurs options. Veuillez cliquer sur l'option "Système" pour accéder à la page des paramètres système. Étape 3 : Sélectionnez « À propos » Dans la page des paramètres « Système », vous verrez plusieurs sous-options. Cliquez s'il vous plait

Titre : Comment configurer et installer FTPS dans le système Linux, des exemples de code spécifiques sont requis. Dans le système Linux, FTPS est un protocole de transfert de fichiers sécurisé. Par rapport à FTP, FTPS crypte les données transmises via le protocole TLS/SSL, ce qui améliore la sécurité des données. transmission. Dans cet article, nous présenterons comment configurer et installer FTPS dans un système Linux et fournirons des exemples de code spécifiques. Étape 1 : Installer vsftpd Ouvrez le terminal et entrez la commande suivante pour installer vsftpd : sudo

MyBatisGenerator est un outil de génération de code officiellement fourni par MyBatis, qui peut aider les développeurs à générer rapidement des JavaBeans, des interfaces Mapper et des fichiers de mappage XML conformes à la structure des tables de base de données. Dans le processus d'utilisation de MyBatisGenerator pour la génération de code, la définition des paramètres de configuration est cruciale. Cet article commencera du point de vue des paramètres de configuration et explorera en profondeur les fonctions de MyBatisGenerator.
