Jadual Kandungan
CI(Codeigniter)的Setting增强配置类实例,cicodeigniter
您可能感兴趣的文章:
Rumah pembangunan bahagian belakang tutorial php CI(Codeigniter)的Setting增强配置类实例,cicodeigniter_PHP教程

CI(Codeigniter)的Setting增强配置类实例,cicodeigniter_PHP教程

Jul 12, 2016 am 09:01 AM
codeigniter Menghantar e-mel Konfigurasi

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;

Salin selepas log masuk

然后,在application/libraries目录下创建setting.php,内容如下

<&#63;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>
   * <&#63;php $this->settings->get('config_item');
   &#63;>
   * </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 */

Salin selepas log masuk

最后,打开application/config/config.php,新增

/**
 * 系统配置表名
 */
$config['settings_table'] = "system_settings";

Salin selepas log masuk

希望本文所述对大家基于Codeigniter框架的PHP程序设计有所帮助。

您可能感兴趣的文章:

  • CodeIgniter中使用Smarty3基本配置
  • Nginx下配置codeigniter框架方法
  • nginx支持codeigniter的pathinfo模式url重写配置写法示例
  • 新浪SAE云平台下使用codeigniter的数据库配置
  • 使用配置类定义Codeigniter全局变量
  • CI(CodeIgniter)框架配置
  • CodeIgniter基本配置详细介绍
  • 解析CodeIgniter自定义配置文件

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1089204.htmlTechArticleCI(Codeigniter)的Setting增强配置类实例,cicodeigniter 本文实例讲述了Codeigniter的Setting增强配置类。分享给大家供大家参考,具体如下: 该增强配...
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Gabungan sempurna PyCharm dan PyTorch: langkah pemasangan dan konfigurasi terperinci Gabungan sempurna PyCharm dan PyTorch: langkah pemasangan dan konfigurasi terperinci Feb 21, 2024 pm 12:00 PM

PyCharm ialah persekitaran pembangunan bersepadu (IDE) yang berkuasa dan PyTorch ialah rangka kerja sumber terbuka yang popular dalam bidang pembelajaran mendalam. Dalam bidang pembelajaran mesin dan pembelajaran mendalam, menggunakan PyCharm dan PyTorch untuk pembangunan boleh meningkatkan kecekapan pembangunan dan kualiti kod. Artikel ini akan memperkenalkan secara terperinci cara memasang dan mengkonfigurasi PyTorch dalam PyCharm, dan melampirkan contoh kod khusus untuk membantu pembaca menggunakan fungsi berkuasa kedua-dua ini dengan lebih baik. Langkah 1: Pasang PyCharm dan Python

Prinsip kerja dan kaedah konfigurasi GDM dalam sistem Linux Prinsip kerja dan kaedah konfigurasi GDM dalam sistem Linux Mar 01, 2024 pm 06:36 PM

Tajuk: Prinsip kerja dan kaedah konfigurasi GDM dalam sistem Linux Dalam sistem pengendalian Linux, GDM (GNOMEDisplayManager) ialah pengurus paparan biasa yang digunakan untuk mengawal log masuk antara muka pengguna grafik (GUI) dan pengurusan sesi pengguna. Artikel ini akan memperkenalkan prinsip kerja dan kaedah konfigurasi GDM, serta menyediakan contoh kod khusus. 1. Prinsip kerja GDM GDM ialah pengurus paparan dalam persekitaran desktop GNOME Ia bertanggungjawab untuk memulakan pelayan X dan menyediakan antara muka log masuk

Bagaimana untuk menyediakan konfigurasi Git dalam PyCharm Bagaimana untuk menyediakan konfigurasi Git dalam PyCharm Feb 20, 2024 am 09:47 AM

Tajuk: Cara mengkonfigurasi Git dengan betul dalam PyCharm Dalam pembangunan perisian moden, sistem kawalan versi ialah alat yang sangat penting, dan Git, sebagai salah satu sistem kawalan versi yang popular, menyediakan pembangun dengan fungsi yang berkuasa dan operasi yang fleksibel. Sebagai persekitaran pembangunan bersepadu Python yang berkuasa, PyCharm dilengkapi dengan sokongan untuk Git, membolehkan pembangun mengurus versi kod dengan lebih mudah. Artikel ini akan memperkenalkan cara mengkonfigurasi Git dengan betul dalam PyCharm untuk memudahkan pembangunan yang lebih baik semasa proses pembangunan.

Fahami Linux Bashrc: fungsi, konfigurasi dan penggunaan Fahami Linux Bashrc: fungsi, konfigurasi dan penggunaan Mar 20, 2024 pm 03:30 PM

Memahami Linux Bashrc: Fungsi, Konfigurasi dan Penggunaan Dalam sistem Linux, Bashrc (BourneAgainShellruncommands) ialah fail konfigurasi yang sangat penting, yang mengandungi pelbagai arahan dan tetapan yang dijalankan secara automatik apabila sistem dimulakan. Fail Bashrc biasanya terletak dalam direktori rumah pengguna dan merupakan fail tersembunyi Fungsinya adalah untuk menyesuaikan persekitaran Bashshell untuk pengguna. 1. Persekitaran tetapan fungsi Bashrc

Tutorial Git konfigurasi PyCharm yang ringkas dan mudah difahami Tutorial Git konfigurasi PyCharm yang ringkas dan mudah difahami Feb 20, 2024 am 08:28 AM

PyCharm ialah persekitaran pembangunan bersepadu (IDE) yang biasa digunakan Dalam pembangunan harian, menggunakan Git untuk mengurus kod adalah penting. Artikel ini akan memperkenalkan cara mengkonfigurasi Git dalam PyCharm dan menggunakan Git untuk pengurusan kod, dengan contoh kod khusus. Langkah 1: Pasang Git Pertama, pastikan Git dipasang pada komputer anda. Jika ia tidak dipasang, anda boleh pergi ke [tapak web rasmi Git](https://git-scm.com/) untuk memuat turun dan memasang versi terkini Git

Bagaimana untuk mengkonfigurasi kumpulan kerja dalam sistem win11 Bagaimana untuk mengkonfigurasi kumpulan kerja dalam sistem win11 Feb 22, 2024 pm 09:50 PM

Cara mengkonfigurasi kumpulan kerja dalam Win11 Kumpulan kerja ialah cara untuk menyambungkan berbilang komputer dalam rangkaian kawasan setempat, yang membolehkan fail, pencetak dan sumber lain dikongsi antara komputer. Dalam sistem Win11, mengkonfigurasi kumpulan kerja adalah sangat mudah, cuma ikut langkah di bawah. Langkah 1: Buka aplikasi "Tetapan" Pertama, klik butang "Mula" sistem Win11, dan kemudian pilih aplikasi "Tetapan" dalam menu timbul. Anda juga boleh menggunakan pintasan "Win+I" untuk membuka "Tetapan". Langkah 2: Pilih "Sistem" Dalam apl Tetapan, anda akan melihat berbilang pilihan. Sila klik pilihan "Sistem" untuk memasuki halaman tetapan sistem. Langkah 3: Pilih "Perihal" Dalam halaman tetapan "Sistem", anda akan melihat berbilang sub-pilihan. Sila klik

Bagaimana untuk mengkonfigurasi dan memasang FTPS dalam sistem Linux Bagaimana untuk mengkonfigurasi dan memasang FTPS dalam sistem Linux Mar 20, 2024 pm 02:03 PM

Tajuk: Cara mengkonfigurasi dan memasang FTPS dalam sistem Linux, contoh kod khusus diperlukan Dalam sistem Linux, FTPS ialah protokol pemindahan fail yang selamat Berbanding dengan FTP, FTPS menyulitkan data yang dihantar melalui protokol TLS/SSL, yang menambah baik. Keselamatan penghantaran data. Dalam artikel ini, kami akan memperkenalkan cara mengkonfigurasi dan memasang FTPS dalam sistem Linux dan memberikan contoh kod khusus. Langkah 1: Pasang vsftpd Buka terminal dan masukkan arahan berikut untuk memasang vsftpd: sudo

Pentafsiran parameter konfigurasi MyBatis Generator dan amalan terbaik Pentafsiran parameter konfigurasi MyBatis Generator dan amalan terbaik Feb 23, 2024 am 09:51 AM

MyBatisGenerator ialah alat penjanaan kod yang disediakan secara rasmi oleh MyBatis, yang boleh membantu pembangun menjana JavaBeans, antara muka Mapper dan fail pemetaan XML dengan pantas yang mematuhi struktur jadual pangkalan data. Dalam proses menggunakan MyBatisGenerator untuk penjanaan kod, penetapan parameter konfigurasi adalah penting. Artikel ini akan bermula dari perspektif parameter konfigurasi dan meneroka secara mendalam fungsi MyBatisGenerator.

See all articles