日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

*CI框架装载器Loader.php源码分析

發布時間:2025/3/20 php 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 *CI框架装载器Loader.php源码分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://www.bitscn.com/pdb/php/201411/404680.html

顧名思義,裝載器就是加載元素的,使用CI時,經常加載的有:

$this->load->library()
$this->load->view()
$this->load->model()
$this->load->database()
$this->load->helper()
$this->load->config()
$this->load->add_package_path()

?

代碼如下:
/**
?* Loader Class
?*
?* 用戶加載views和files,常見的函數有model(),view(),library(),helper()
?*?
?* Controller的好助手,$this->load =& load_class('Loader', 'core');,加載了loader,Controller就無比強大了
?*/
class CI_Loader {
?protected $_ci_ob_level;
?protected $_ci_view_paths??= array();
?protected $_ci_library_paths?= array();
?protected $_ci_model_paths??= array();
?protected $_ci_helper_paths??= array();
?protected $_base_classes??= array(); // Set by the controller class
?protected $_ci_cached_vars??= array();
?protected $_ci_classes???= array();
?protected $_ci_loaded_files??= array();
?
?protected $_ci_models???= array();
?protected $_ci_helpers???= array();
?protected $_ci_varmap???= array('unit_test' => 'unit',
???????????'user_agent' => 'agent');
?public function __construct()
?{???????
??????????????? //獲取緩沖嵌套級別
??$this->_ci_ob_level? = ob_get_level();
??//library路徑
??????????????? $this->_ci_library_paths = array(APPPATH, BASEPATH);
??????????????? //helper路徑
??$this->_ci_helper_paths = array(APPPATH, BASEPATH);
??????????????? //model路徑
??$this->_ci_model_paths = array(APPPATH);
??????????????? //view路徑
??$this->_ci_view_paths = array(APPPATH.'views/'?=> TRUE);
??log_message('debug', "Loader Class Initialized");
?}
?// --------------------------------------------------------------------
?/**
? * 初始化Loader
? *
? */
?public function initialize()
?{
??$this->_ci_classes = array();
??$this->_ci_loaded_files = array();
??$this->_ci_models = array();
??????????????? //將is_loaded(common中記錄加載核心類函數)加載的核心類交給_base_classes
??$this->_base_classes =& is_loaded();
??????????????? //加載autoload.php配置中文件
??$this->_ci_autoloader();
??return $this;
?}
?// --------------------------------------------------------------------
?/**
? * 檢測類是否加載
? */
?public function is_loaded($class)
?{
??if (isset($this->_ci_classes[$class]))
??{
???return $this->_ci_classes[$class];
??}
??return FALSE;
?}
?// --------------------------------------------------------------------
?/**
? * 加載Class
? */
?public function library($library = '', $params = NULL, $object_name = NULL)
?{
??if (is_array($library))
??{
???foreach ($library as $class)
???{
????$this->library($class, $params);
???}
???return;
??}
??????????????? //如果$library為空或者已經加載。。。
??if ($library == '' OR isset($this->_base_classes[$library]))
??{
???return FALSE;
??}
??if ( ! is_null($params) && ! is_array($params))
??{
???$params = NULL;
??}
??$this->_ci_load_class($library, $params, $object_name);
?}
?// --------------------------------------------------------------------
?/**
? * 加載和實例化model
? */
?public function model($model, $name = '', $db_conn = FALSE)
?{
??????????????? //CI支持數組加載多個model
??if (is_array($model))
??{
???foreach ($model as $babe)
???{
????$this->model($babe);
???}
???return;
??}
??if ($model == '')
??{
???return;
??}
??$path = '';
??// 是否存在子目錄
??if (($last_slash = strrpos($model, '/')) !== FALSE)
??{
???// The path is in front of the last slash
???$path = substr($model, 0, $last_slash + 1);
???// And the model name behind it
???$model = substr($model, $last_slash + 1);
??}
??if ($name == '')
??{
???$name = $model;
??}
??if (in_array($name, $this->_ci_models, TRUE))
??{
???return;
??}
??$CI =& get_instance();
??if (isset($CI->$name))
??{
???show_error('The model name you are loading is the name of a resource that is already being used: '.$name);
??}
??$model = strtolower($model); //model文件名全小寫
??foreach ($this->_ci_model_paths as $mod_path)
??{
???if ( ! file_exists($mod_path.'models/'.$path.$model.'.php'))
???{
????continue;
???}
???if ($db_conn !== FALSE AND ! class_exists('CI_DB'))
???{
????if ($db_conn === TRUE)
????{
?????$db_conn = '';
????}
????$CI->load->database($db_conn, FALSE, TRUE);
???}
???if ( ! class_exists('CI_Model'))
???{
????load_class('Model', 'core');
???}
???require_once($mod_path.'models/'.$path.$model.'.php');
???$model = ucfirst($model);
???$CI->$name = new $model();
??????????????????????? //保存在Loader::_ci_models中,以后可以用它來判斷某個model是否已經加載過。
???$this->_ci_models[] = $name;
???return;
??}
??// couldn't find the model
??show_error('Unable to locate the model you have specified: '.$model);
?}
?// --------------------------------------------------------------------
?/**
? * 數據庫Loader
? */
?public function database($params = '', $return = FALSE, $active_record = NULL)
?{
??// Grab the super object
??$CI =& get_instance();
??// 是否需要加載db
??if (class_exists('CI_DB') AND $return == FALSE AND $active_record == NULL AND isset($CI->db) AND is_object($CI->db))
??{
???return FALSE;
??}
??require_once(BASEPATH.'database/DB.php');
??if ($return === TRUE)
??{
???return DB($params, $active_record);
??}
??// Initialize the db variable.? Needed to prevent
??// reference errors with some configurations
??$CI->db = '';
??// Load the DB class
??$CI->db =& DB($params, $active_record);
?}
?// --------------------------------------------------------------------
?/**
? * 加載數據庫工具類
? */
?public function dbutil()
?{
??if ( ! class_exists('CI_DB'))
??{
???$this->database();
??}
??$CI =& get_instance();
??// for backwards compatibility, load dbforge so we can extend dbutils off it
??// this use is deprecated and strongly discouraged
??$CI->load->dbforge();
??require_once(BASEPATH.'database/DB_utility.php');
??require_once(BASEPATH.'database/drivers/'.$CI->db->dbdriver.'/'.$CI->db->dbdriver.'_utility.php');
??$class = 'CI_DB_'.$CI->db->dbdriver.'_utility';
??$CI->dbutil = new $class();
?}
?// --------------------------------------------------------------------
?/**
? * Load the Database Forge Class
? *
? * @return?string
? */
?public function dbforge()
?{
??if ( ! class_exists('CI_DB'))
??{
???$this->database();
??}
??$CI =& get_instance();
??require_once(BASEPATH.'database/DB_forge.php');
??require_once(BASEPATH.'database/drivers/'.$CI->db->dbdriver.'/'.$CI->db->dbdriver.'_forge.php');
??$class = 'CI_DB_'.$CI->db->dbdriver.'_forge';
??$CI->dbforge = new $class();
?}
?// --------------------------------------------------------------------
?/**
? * 加載視圖文件
? */
?public function view($view, $vars = array(), $return = FALSE)
?{
??return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));
?}
?// --------------------------------------------------------------------
?/**
? * 加載普通文件
? */
?public function file($path, $return = FALSE)
?{
??return $this->_ci_load(array('_ci_path' => $path, '_ci_return' => $return));
?}
?// --------------------------------------------------------------------
?/**
? * 設置變量
? *
? * Once variables are set they become available within
? * the controller class and its "view" files.
? *
? */
?public function vars($vars = array(), $val = '')
?{
??if ($val != '' AND is_string($vars))
??{
???$vars = array($vars => $val);
??}
??$vars = $this->_ci_object_to_array($vars);
??if (is_array($vars) AND count($vars) > 0)
??{
???foreach ($vars as $key => $val)
???{
????$this->_ci_cached_vars[$key] = $val;
???}
??}
?}
?// --------------------------------------------------------------------
?/**
? * 檢查并獲取變量
? */
?public function get_var($key)
?{
??return isset($this->_ci_cached_vars[$key]) ? $this->_ci_cached_vars[$key] : NULL;
?}
?// --------------------------------------------------------------------
?/**
? * 加載helper
? */
?public function helper($helpers = array())
?{
??foreach ($this->_ci_prep_filename($helpers, '_helper') as $helper)
??{
???if (isset($this->_ci_helpers[$helper]))
???{
????continue;
???}
???$ext_helper = APPPATH.'helpers/'.config_item('subclass_prefix').$helper.'.php';
???// 如果是擴展helper的話
???if (file_exists($ext_helper))
???{
????$base_helper = BASEPATH.'helpers/'.$helper.'.php';
????if ( ! file_exists($base_helper))
????{
?????show_error('Unable to load the requested file: helpers/'.$helper.'.php');
????}
????include_once($ext_helper);
????include_once($base_helper);
????$this->_ci_helpers[$helper] = TRUE;
????log_message('debug', 'Helper loaded: '.$helper);
????continue;
???}
???// 如果不是擴展helper,helper路徑中加載helper
???foreach ($this->_ci_helper_paths as $path)
???{
????if (file_exists($path.'helpers/'.$helper.'.php'))
????{
?????include_once($path.'helpers/'.$helper.'.php');
?????$this->_ci_helpers[$helper] = TRUE;
?????log_message('debug', 'Helper loaded: '.$helper);
?????break;
????}
???}
???// 如果該helper還沒加載成功的話,說明加載helper失敗
???if ( ! isset($this->_ci_helpers[$helper]))
???{
????show_error('Unable to load the requested file: helpers/'.$helper.'.php');
???}
??}
?}
?// --------------------------------------------------------------------
?/**
? * 可以看到helpers調用也是上面的helper,只是helpers的別名而已
? */
?public function helpers($helpers = array())
?{
??$this->helper($helpers);
?}
?// --------------------------------------------------------------------
?/**
? * 加載language文件
? */
?public function language($file = array(), $lang = '')
?{
??$CI =& get_instance();
??if ( ! is_array($file))
??{
???$file = array($file);
??}
??foreach ($file as $langfile)
??{
???$CI->lang->load($langfile, $lang);
??}
?}
?// --------------------------------------------------------------------
?/**
? * 加載配置文件
? */
?public function config($file = '', $use_sections = FALSE, $fail_gracefully = FALSE)
?{
??$CI =& get_instance();
??$CI->config->load($file, $use_sections, $fail_gracefully);
?}
?// --------------------------------------------------------------------
?/**
? * Driver
? *
? * 加載 driver library
? */
?public function driver($library = '', $params = NULL, $object_name = NULL)
?{
??if ( ! class_exists('CI_Driver_Library'))
??{
???// we aren't instantiating an object here, that'll be done by the Library itself
???require BASEPATH.'libraries/Driver.php';
??}
??if ($library == '')
??{
???return FALSE;
??}
??// We can save the loader some time since Drivers will *always* be in a subfolder,
??// and typically identically named to the library
??if ( ! strpos($library, '/'))
??{
???$library = ucfirst($library).'/'.$library;
??}
??return $this->library($library, $params, $object_name);
?}
?// --------------------------------------------------------------------
?/**
? * 添加 Package 路徑
? *
? * 把package路徑添加到庫,模型,助手,配置路徑
? */
?public function add_package_path($path, $view_cascade=TRUE)
?{
??$path = rtrim($path, '/').'/';
??array_unshift($this->_ci_library_paths, $path);
??array_unshift($this->_ci_model_paths, $path);
??array_unshift($this->_ci_helper_paths, $path);
??$this->_ci_view_paths = array($path.'views/' => $view_cascade) + $this->_ci_view_paths;
??$config =& $this->_ci_get_component('config');
??array_unshift($config->_config_paths, $path);
?}
?// --------------------------------------------------------------------
?/**
? * 獲取Package Paths,默認不包含BASEPATH
? */
?public function get_package_paths($include_base = FALSE)
?{
??return $include_base === TRUE ? $this->_ci_library_paths : $this->_ci_model_paths;
?}
?// --------------------------------------------------------------------
?/**
? * 剔除Package Path
? *
? * Remove a path from the library, model, and helper path arrays if it exists
? * If no path is provided, the most recently added path is removed.
? *
? */
?public function remove_package_path($path = '', $remove_config_path = TRUE)
?{
??$config =& $this->_ci_get_component('config');
??if ($path == '')
??{
???$void = array_shift($this->_ci_library_paths);
???$void = array_shift($this->_ci_model_paths);
???$void = array_shift($this->_ci_helper_paths);
???$void = array_shift($this->_ci_view_paths);
???$void = array_shift($config->_config_paths);
??}
??else
??{
???$path = rtrim($path, '/').'/';
???foreach (array('_ci_library_paths', '_ci_model_paths', '_ci_helper_paths') as $var)
???{
????if (($key = array_search($path, $this->{$var})) !== FALSE)
????{
?????unset($this->{$var}[$key]);
????}
???}
???if (isset($this->_ci_view_paths[$path.'views/']))
???{
????unset($this->_ci_view_paths[$path.'views/']);
???}
???if (($key = array_search($path, $config->_config_paths)) !== FALSE)
???{
????unset($config->_config_paths[$key]);
???}
??}
??// 保證應用默認的路徑依然存在
??$this->_ci_library_paths = array_unique(array_merge($this->_ci_library_paths, array(APPPATH, BASEPATH)));
??$this->_ci_helper_paths = array_unique(array_merge($this->_ci_helper_paths, array(APPPATH, BASEPATH)));
??$this->_ci_model_paths = array_unique(array_merge($this->_ci_model_paths, array(APPPATH)));
??$this->_ci_view_paths = array_merge($this->_ci_view_paths, array(APPPATH.'views/' => TRUE));
??$config->_config_paths = array_unique(array_merge($config->_config_paths, array(APPPATH)));
?}
?// --------------------------------------------------------------------
?/**
? * Loader
? *
? * This function is used to load views and files.
? * Variables are prefixed with _ci_ to avoid symbol collision with
? * variables made available to view files
? *
? * @param?array
? * @return?void
? */
?protected function _ci_load($_ci_data)
?{
??// Set the default data variables
??foreach (array('_ci_view', '_ci_vars', '_ci_path', '_ci_return') as $_ci_val)
??{
???$$_ci_val = ( ! isset($_ci_data[$_ci_val])) ? FALSE : $_ci_data[$_ci_val];
??}
??$file_exists = FALSE;
??????????????? //如果$_ci_path不為空,則說明當前要加載普通文件。Loader::file才會有path
??if ($_ci_path != '')
??{
???$_ci_x = explode('/', $_ci_path);
???$_ci_file = end($_ci_x);
??}
??else
??{
???$_ci_ext = pathinfo($_ci_view, PATHINFO_EXTENSION);
???$_ci_file = ($_ci_ext == '') ? $_ci_view.'.php' : $_ci_view;
???foreach ($this->_ci_view_paths as $view_file => $cascade)
???{
????if (file_exists($view_file.$_ci_file))
????{
?????$_ci_path = $view_file.$_ci_file;
?????$file_exists = TRUE;
?????break;
????}
????if ( ! $cascade)
????{
?????break;
????}
???}
??}
??????????????? //view文件不存在則會報錯
??if ( ! $file_exists && ! file_exists($_ci_path))
??{
???show_error('Unable to load the requested file: '.$_ci_file);
??}
??// 把CI的所有屬性都傳遞給loader,view中$this指的是loader
??$_ci_CI =& get_instance();
??foreach (get_object_vars($_ci_CI) as $_ci_key => $_ci_var)
??{
???if ( ! isset($this->$_ci_key))
???{
????$this->$_ci_key =& $_ci_CI->$_ci_key;
???}
??}
??/*
?? * Extract and cache variables
?? *
?? * You can either set variables using the dedicated $this->load_vars()
?? * function or via the second parameter of this function. We'll merge
?? * the two types and cache them so that views that are embedded within
?? * other views can have access to these variables.
?? */
??if (is_array($_ci_vars))
??{
???$this->_ci_cached_vars = array_merge($this->_ci_cached_vars, $_ci_vars);
??}
??extract($this->_ci_cached_vars);
??/*
?? * 將視圖內容放到緩存區
?? *
?? */
??ob_start();
??// 支持短標簽
??if ((bool) @ini_get('short_open_tag') === FALSE AND config_item('rewrite_short_tags') == TRUE)
??{
???echo eval('?>'.preg_replace("/;*\s*\?>/", "; ?>", str_replace('<?=', '<?php echo ', file_get_contents($_ci_path))));
??}
??else
??{
???include($_ci_path); // include() vs include_once() allows for multiple views with the same name
??}
??log_message('debug', 'File loaded: '.$_ci_path);
??// 是否直接返回view數據
??if ($_ci_return === TRUE)
??{
???$buffer = ob_get_contents();
???@ob_end_clean();
???return $buffer;
??}
??//當前這個視圖文件是被另一個視圖文件通過$this->view()方法引入,即視圖文件嵌入視圖文件
??if (ob_get_level() > $this->_ci_ob_level + 1)
??{
???ob_end_flush();
??}
??else
??{?????? 把緩沖區的內容交給Output組件并清空關閉緩沖區。
???$_ci_CI->output->append_output(ob_get_contents());
???@ob_end_clean();
??}
?}
?// --------------------------------------------------------------------
?/**
? * 加載類
? */
?protected function _ci_load_class($class, $params = NULL, $object_name = NULL)
?{
??// 去掉.php和兩端的/獲取的$class就是類名或目錄名+類名
??$class = str_replace('.php', '', trim($class, '/'));
??// CI允許dir/filename方式
??$subdir = '';
??if (($last_slash = strrpos($class, '/')) !== FALSE)
??{
???// 目錄
???$subdir = substr($class, 0, $last_slash + 1);
???// 文件名
???$class = substr($class, $last_slash + 1);
??}
??// 允許加載的類名首字母大寫或全小寫
??foreach (array(ucfirst($class), strtolower($class)) as $class)
??{
???$subclass = APPPATH.'libraries/'.$subdir.config_item('subclass_prefix').$class.'.php';
???// 是否是擴展類
???if (file_exists($subclass))
???{
????$baseclass = BASEPATH.'libraries/'.ucfirst($class).'.php';
????if ( ! file_exists($baseclass))
????{
?????log_message('error', "Unable to load the requested class: ".$class);
?????show_error("Unable to load the requested class: ".$class);
????}
????// Safety:? Was the class already loaded by a previous call?
????if (in_array($subclass, $this->_ci_loaded_files))
????{
?????// Before we deem this to be a duplicate request, let's see
?????// if a custom object name is being supplied.? If so, we'll
?????// return a new instance of the object
?????if ( ! is_null($object_name))
?????{
??????$CI =& get_instance();
??????if ( ! isset($CI->$object_name))
??????{
???????return $this->_ci_init_class($class, config_item('subclass_prefix'), $params, $object_name);
??????}
?????}
?????$is_duplicate = TRUE;
?????log_message('debug', $class." class already loaded. Second attempt ignored.");
?????return;
????}
????include_once($baseclass);
????include_once($subclass);
????$this->_ci_loaded_files[] = $subclass;
??????????????????????????????? //實例化類
????return $this->_ci_init_class($class, config_item('subclass_prefix'), $params, $object_name);
???}
???// 如果不是擴展,和上面類似
???$is_duplicate = FALSE;
???foreach ($this->_ci_library_paths as $path)
???{
????$filepath = $path.'libraries/'.$subdir.$class.'.php';
????// Does the file exist?? No?? Bummer...
????if ( ! file_exists($filepath))
????{
?????continue;
????}
????// Safety:? Was the class already loaded by a previous call?
????if (in_array($filepath, $this->_ci_loaded_files))
????{
?????// Before we deem this to be a duplicate request, let's see
?????// if a custom object name is being supplied.? If so, we'll
?????// return a new instance of the object
?????if ( ! is_null($object_name))
?????{
??????$CI =& get_instance();
??????if ( ! isset($CI->$object_name))
??????{
???????return $this->_ci_init_class($class, '', $params, $object_name);
??????}
?????}
?????$is_duplicate = TRUE;
?????log_message('debug', $class." class already loaded. Second attempt ignored.");
?????return;
????}
????include_once($filepath);
????$this->_ci_loaded_files[] = $filepath;
????return $this->_ci_init_class($class, '', $params, $object_name);
???}
??} // END FOREACH
??// 如果還沒有找到該class,最后的嘗試是該class會不會在同名的子目錄下
??if ($subdir == '')
??{
???$path = strtolower($class).'/'.$class;
???return $this->_ci_load_class($path, $params);
??}
??// 加載失敗,報錯
??if ($is_duplicate == FALSE)
??{
???log_message('error', "Unable to load the requested class: ".$class);
???show_error("Unable to load the requested class: ".$class);
??}
?}
?// --------------------------------------------------------------------
?/**
? * 實例化已經加載的類
? */
?protected function _ci_init_class($class, $prefix = '', $config = FALSE, $object_name = NULL)
?{
??// 是否有類的配置信息
??if ($config === NULL)
??{
???// Fetch the config paths containing any package paths
???$config_component = $this->_ci_get_component('config');
???if (is_array($config_component->_config_paths))
???{
????// Break on the first found file, thus package files
????// are not overridden by default paths
????foreach ($config_component->_config_paths as $path)
????{
?????// We test for both uppercase and lowercase, for servers that
?????// are case-sensitive with regard to file names. Check for environment
?????// first, global next
?????if (defined('ENVIRONMENT') AND file_exists($path .'config/'.ENVIRONMENT.'/'.strtolower($class).'.php'))
?????{
??????include($path .'config/'.ENVIRONMENT.'/'.strtolower($class).'.php');
??????break;
?????}
?????elseif (defined('ENVIRONMENT') AND file_exists($path .'config/'.ENVIRONMENT.'/'.ucfirst(strtolower($class)).'.php'))
?????{
??????include($path .'config/'.ENVIRONMENT.'/'.ucfirst(strtolower($class)).'.php');
??????break;
?????}
?????elseif (file_exists($path .'config/'.strtolower($class).'.php'))
?????{
??????include($path .'config/'.strtolower($class).'.php');
??????break;
?????}
?????elseif (file_exists($path .'config/'.ucfirst(strtolower($class)).'.php'))
?????{
??????include($path .'config/'.ucfirst(strtolower($class)).'.php');
??????break;
?????}
????}
???}
??}
??if ($prefix == '')
??{?????? //system下library
???if (class_exists('CI_'.$class))
???{
????$name = 'CI_'.$class;
???}
???elseif (class_exists(config_item('subclass_prefix').$class))
???{?????? //擴展library
????$name = config_item('subclass_prefix').$class;
???}
???else
???{
????$name = $class;
???}
??}
??else
??{
???$name = $prefix.$class;
??}
??// Is the class name valid?
??if ( ! class_exists($name))
??{
???log_message('error', "Non-existent class: ".$name);
???show_error("Non-existent class: ".$class);
??}
??// Set the variable name we will assign the class to
??// Was a custom class name supplied?? If so we'll use it
??$class = strtolower($class);
??if (is_null($object_name))
??{
???$classvar = ( ! isset($this->_ci_varmap[$class])) ? $class : $this->_ci_varmap[$class];
??}
??else
??{
???$classvar = $object_name;
??}
??// Save the class name and object name
??$this->_ci_classes[$class] = $classvar;
??// 將初始化的類的實例給CI超級句柄
??$CI =& get_instance();
??if ($config !== NULL)
??{
???$CI->$classvar = new $name($config);
??}
??else
??{
???$CI->$classvar = new $name;
??}
?}
?// --------------------------------------------------------------------
?/**
? * 自動加載器
???????? *?
???????? * autoload.php配置的自動加載文件有:
???????? *? | 1. Packages
??????????? | 2. Libraries
??????????? | 3. Helper files
??????????? | 4. Custom config files
??????????? | 5. Language files
??????????? | 6. Models
? */
?private function _ci_autoloader()
?{
??if (defined('ENVIRONMENT') AND file_exists(APPPATH.'config/'.ENVIRONMENT.'/autoload.php'))
??{
???include(APPPATH.'config/'.ENVIRONMENT.'/autoload.php');
??}
??else
??{
???include(APPPATH.'config/autoload.php');
??}
??if ( ! isset($autoload))
??{
???return FALSE;
??}
??// 自動加載packages,也就是將package_path加入到library,model,helper,config
??if (isset($autoload['packages']))
??{
???foreach ($autoload['packages'] as $package_path)
???{
????$this->add_package_path($package_path);
???}
??}
??// 加載config文件
??if (count($autoload['config']) > 0)
??{
???$CI =& get_instance();
???foreach ($autoload['config'] as $key => $val)
???{
????$CI->config->load($val);
???}
??}
??// 加載helper和language
??foreach (array('helper', 'language') as $type)
??{
???if (isset($autoload[$type]) AND count($autoload[$type]) > 0)
???{
????$this->$type($autoload[$type]);
???}
??}
??// 這個好像是為了兼容以前版本的
??if ( ! isset($autoload['libraries']) AND isset($autoload['core']))
??{
???$autoload['libraries'] = $autoload['core'];
??}
??// 加載libraries
??if (isset($autoload['libraries']) AND count($autoload['libraries']) > 0)
??{
???// 加載db
???if (in_array('database', $autoload['libraries']))
???{
????$this->database();
????$autoload['libraries'] = array_diff($autoload['libraries'], array('database'));
???}
???// 加載所有其他libraries
???foreach ($autoload['libraries'] as $item)
???{
????$this->library($item);
???}
??}
??// Autoload models
??if (isset($autoload['model']))
??{
???$this->model($autoload['model']);
??}
?}
?// --------------------------------------------------------------------
?/**
? * 返回由對象屬性組成的關聯數組
? */
?protected function _ci_object_to_array($object)
?{
??return (is_object($object)) ? get_object_vars($object) : $object;
?}
?// --------------------------------------------------------------------
?/**
? * 獲取CI某個組件的實例
? */
?protected function &_ci_get_component($component)
?{
??$CI =& get_instance();
??return $CI->$component;
?}
?// --------------------------------------------------------------------
?/**
? * 處理文件名,這個函數主要是返回正確文件名
? */
?protected function _ci_prep_filename($filename, $extension)
?{
??if ( ! is_array($filename))
??{
???return array(strtolower(str_replace('.php', '', str_replace($extension, '', $filename)).$extension));
??}
??else
??{
???foreach ($filename as $key => $val)
???{
????$filename[$key] = strtolower(str_replace('.php', '', str_replace($extension, '', $val)).$extension);
???}
???return $filename;
??}
?}
}

總結

以上是生活随笔為你收集整理的*CI框架装载器Loader.php源码分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

婷婷婷国产在线视频 | 国产精品一区二区美女视频免费看 | 国产美女网站在线观看 | 天天爽人人爽夜夜爽 | 超碰在线人人艹 | 成年人视频在线免费观看 | 五月视频 | 27xxoo无遮挡动态视频 | 国产精品久免费的黄网站 | 国产精品一区专区欧美日韩 | 国产小视频在线播放 | 在线中文字幕视频 | 亚洲视频精选 | 91在线porny国产在线看 | av夜夜操 | 国产精品欧美久久 | 国产日韩欧美视频在线观看 | 免费一级日韩欧美性大片 | www.五月天激情 | 亚洲第一av在线 | 日韩动态视频 | 国产免费成人av | 六月丁香久久 | 国产一区二区在线播放视频 | 久久久久久视频 | 日韩高清www | 黄色www| 天天搞天天干天天色 | 亚洲欧美日韩精品一区二区 | 2019中文字幕第一页 | 麻豆国产视频下载 | 日本久久久久久久久久久 | 黄色在线免费观看网址 | 久久99这里只有精品 | 成人va视频| 在线亚洲精品 | 久久视 | 欧美在线视频二区 | 久久99国产精品久久99 | 在线观看免费福利 | 97超碰人人看| 视频直播国产精品 | 日韩精品一区二区三区丰满 | 日本亚洲国产 | 麻豆视频成人 | 香蕉影院在线播放 | 日韩免费电影一区二区三区 | 天天干天天插伊人网 | 色婷婷电影网 | 丁香婷婷综合激情五月色 | 国产在线 一区二区三区 | 国产色妞影院wwwxxx | 久久综合久久综合九色 | 丁香网五月天 | 黄色亚洲片 | 亚洲精品福利视频 | 青草视频在线看 | 91在线视频免费播放 | 欧美一级免费高清 | 国产高清在线免费视频 | 国产午夜三级一区二区三桃花影视 | 国产韩国日本高清视频 | 在线观看中文字幕2021 | 五月天天天操 | 久久视频网址 | 五月综合久久 | 一级黄色在线视频 | 日本黄色免费网站 | 99久久精品免费一区 | 黄色免费网站大全 | 久草在线这里只有精品 | 超碰国产人人 | 午夜黄色一级片 | 亚洲激情久久 | 久久久久久久综合色一本 | 欧美精品久久久久久 | 在线观看免费 | 欧美日韩一区久久 | 免费的成人av | 免费亚洲黄色 | 黄色毛片视频免费观看中文 | 午夜av剧场| 日韩精品电影在线播放 | 999在线精品 | www.看片网站 | 在线播放av网址 | 免费成人在线视频网站 | 五月综合网 | 日韩一区视频在线 | 日韩视频在线不卡 | 国产亚洲精品女人久久久久久 | av日韩在线网站 | 欧美亚洲一级片 | 91av在线视频免费观看 | 亚州精品成人 | 亚洲五月六月 | 麻豆一区二区三区视频 | 久久人人爽人人片 | 91精品无人成人www | 91av大全 | 亚洲精品免费看 | 4438全国亚洲精品观看视频 | 91资源在线视频 | 最近最新中文字幕 | 亚洲国产成人精品久久 | 国产男女无遮挡猛进猛出在线观看 | 色综合天天综合在线视频 | 国产中文字幕久久 | 久久婷婷国产色一区二区三区 | 午夜影视剧场 | 四虎国产精品免费观看视频优播 | 九九九九热精品免费视频点播观看 | 日韩免费成人 | 国产色爽 | 久久精品99精品国产香蕉 | 亚洲h视频在线 | 日本99热| 在线观看免费一区 | 国产精品网在线观看 | 亚洲精品美女在线 | 麻豆国产精品一区二区三区 | 欧美日韩中文字幕综合视频 | 免费视频一区 | 美女网站黄在线观看 | www.超碰 | 欧美在线1区 | 久久电影国产免费久久电影 | 国产亚洲人 | 国产一区欧美在线 | 中文字幕在线国产精品 | 欧美淫aaa免费观看 日韩激情免费视频 | 国产原创在线 | 成年人免费看片 | 久久男女视频 | 91传媒免费观看 | 天天综合网 天天 | 热久久国产 | 丰满少妇在线观看 | 久草在线资源免费 | 深夜免费福利网站 | 免费进去里的视频 | 国产精品资源网 | 久久av一区二区三区亚洲 | 在线免费观看一区二区三区 | 国产97碰免费视频 | 久久天天躁 | 日韩在线观看中文 | 国产精品影音先锋 | 亚洲在线高清 | 亚洲欧美日韩国产一区二区 | 中文字幕之中文字幕 | 精品视频123区在线观看 | 成年人视频免费在线播放 | 黄p在线播放 | 国产精品久一 | 国产成人精品久久 | 国产99久久久国产精品成人免费 | av成人黄色 | 亚洲日韩欧美一区二区在线 | 丰满少妇在线观看资源站 | 在线观看日韩一区 | 中文字幕欧美日韩va免费视频 | 男女激情免费网站 | 中文字幕三区 | 中文资源在线官网 | 国产高清视频免费观看 | 国产视频不卡 | 国产成人精品三级 | 国产精品久久久久av | 黄色片视频免费 | 性色在线视频 | 国产精品白浆 | 亚洲成人xxx| 99色| 亚州精品国产 | 日本精品视频一区二区 | 中文字幕制服丝袜av久久 | 久久不卡视频 | 在线观看的av网站 | 国产99久久精品一区二区永久免费 | 91在线视频观看免费 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 日韩精品久久久久久久电影竹菊 | 精品久久网 | 免费视频久久久久久久 | 中文字幕免费高清av | 亚洲另类视频在线观看 | 久久免费精彩视频 | 久久美女视频 | 成人性生活大片 | 美女福利视频一区二区 | 久久天堂精品视频 | 国产日韩高清在线 | 欧美日韩国产页 | 欧美 亚洲 另类 激情 另类 | 少妇视频一区 | 在线电影a | 人人干狠狠操 | 久久免费观看视频 | 国产免费一区二区三区最新 | 99热播精品 | 亚洲一区二区视频在线 | 午夜性盈盈| 综合在线色| 狠狠干夜夜 | 国产一卡二卡四卡国 | 黄av资源 | 99精品久久久久久久久久综合 | 国产在线探花 | 久久福利小视频 | 久久精品视 | 碰超在线观看 | 黄色av播放 | 亚洲国产日韩一区 | 色资源二区在线视频 | 国产一区在线播放 | www.888av| 日韩欧美电影网 | 亚洲国产天堂av | 亚洲人成网站精品片在线观看 | 亚洲精品高清在线 | 999色视频 | 久久99久国产精品黄毛片入口 | 亚洲黄色小说网 | 免费a视频| 亚洲精品18p| 日本黄色免费在线观看 | 亚洲爽爽网 | 国产精品久久99综合免费观看尤物 | 日韩激情第一页 | 亚洲精品视频在线 | 日韩字幕在线观看 | 日韩高清在线一区二区三区 | 少妇bbw撒尿 | 欧美一性一交一乱 | 国产在线a视频 | 久久人人插 | 一区中文字幕在线观看 | www.黄色| 国产一区二三区好的 | 91精品国产亚洲 | 精品国产一区二区三区蜜臀 | 91九色在线观看视频 | 色偷偷88888欧美精品久久 | 免费在线国产视频 | 超级碰碰碰碰 | 97国产大学生情侣酒店的特点 | 国产乱对白刺激视频不卡 | 西西人体4444www高清视频 | 国产精品9区 | 日本精品视频在线播放 | 国内外成人免费在线视频 | 欧美日韩精品国产 | 成人羞羞免费 | 久久激情婷婷 | 99久久99久久精品国产片果冰 | 激情五月婷婷综合 | 色网站免费在线看 | 久青草影院 | 日本女人逼 | 国产成人精品一区二区三区福利 | 国产成人精品在线 | 91麻豆福利 | 成人午夜av电影 | 天天狠狠干 | 日本久久免费视频 | 中文亚洲欧美日韩 | 日韩欧美电影网 | 久草视频国产 | 在线观看岛国 | 五月婷婷狠狠 | 国产黄色精品 | 91精品视频免费看 | 久久影院亚洲 | 在线a亚洲视频播放在线观看 | 免费观看91视频大全 | 99一级片 | 欧美日韩精品综合 | 成人av资源在线 | 成人sm另类专区 | 色婷婷六月天 | 高清中文字幕av | 亚洲精品动漫久久久久 | 亚洲精品高清视频 | 欧美日韩一区三区 | 麻豆影视在线观看 | 亚洲综合最新在线 | 人人爱爱 | 成人免费在线网 | 国产成人精品免高潮在线观看 | 97超碰在线免费 | 丝袜美腿在线视频 | 国产精品高清一区二区三区 | 丁香婷婷综合五月 | 日韩在线观看视频一区二区三区 | 日韩专区av | 91成年人网站 | 国产v亚洲v | 三级性生活视频 | 成人国产精品一区二区 | 激情欧美一区二区三区免费看 | 一区二区三区高清在线观看 | 久久视频免费 | 五月精品 | www色com | 在线观看日韩国产 | 国产在线精品一区二区不卡了 | 五月婷综合 | 三上悠亚一区二区在线观看 | 日韩视频免费看 | 免费av网站观看 | 特片网久久 | 日韩av伦理片| 在线观av | 国产精品久久久久久一区二区三区 | 国产一级片直播 | 欧美亚洲免费在线一区 | 免费a级黄色毛片 | 日韩在线视频线视频免费网站 | 日韩欧美高清在线观看 | 日韩精品最新在线观看 | av免费在线观 | www.日本色| 在线观看黄色国产 | 国产一区在线播放 | 成人av播放 | 成人av在线直播 | 99视 | 中文字幕在线观看国产 | 久草爱 | 日韩欧美一区二区在线观看 | 日本xxxx.com | 久久伊人精品一区二区三区 | 国产一级淫片在线观看 | 五月天婷婷视频 | 亚洲美女精品 | 日本中文在线 | 久久久www成人免费毛片麻豆 | 99精品久久久久 | 天堂av一区二区 | 97精品国产97久久久久久免费 | 亚洲成人黄色在线 | 久久国产精品视频观看 | 色av资源网 | 九九视频精品免费 | 久久99亚洲网美利坚合众国 | 国产丝袜网站 | 欧美激情精品久久久久久免费 | 色视频在线 | 亚洲综合涩 | 日日夜夜免费精品视频 | 亚洲成人黄色在线观看 | 国产成人av片 | 99视频精品免费观看, | 国产永久网站 | 国产精品午夜久久久久久99热 | 婷婷六月综合亚洲 | 日本黄色免费在线 | 国产99免费视频 | 亚洲高清在线精品 | 欧美成a人片在线观看久 | 亚洲久草网 | 99亚洲精品在线 | 一区二区国产精品 | 中文字幕一二 | 99国产精品免费网站 | 久久成人精品电影 | 午夜久久影视 | av东方在线| 国产一区二区三区高清播放 | 免费在线国产 | 久久电影色 | 中文字幕中文字幕在线一区 | 久久九九影视 | 97涩涩视频| 国产麻豆视频在线观看 | 欧美精品乱码久久久久久按摩 | 一级性生活片 | 中文字幕亚洲在线观看 | 中文字幕丝袜 | 日日久视频 | 成人免费网视频 | 久99久精品视频免费观看 | 三级动图 | 成人免费观看视频网站 | 日韩久久影院 | 国产精品99久久久久久小说 | 成人夜晚看av | 久久影院精品 | 99视频在线 | 中文在线免费看视频 | 欧美日韩不卡一区二区 | 国产精品久久久影视 | 色网站在线看 | 奇米影视777影音先锋 | 国产99久 | 激情av一区二区 | 免费网站黄 | 成人免费视频视频在线观看 免费 | 国产精品第10页 | 精品久久久久久久久久久院品网 | 国产精品99精品 | 国产专区视频在线观看 | 婷婷激情在线观看 | 欧美精品在线观看 | .国产精品成人自产拍在线观看6 | 九九久久电影 | 欧美综合色| 天天爽天天做 | 美女国内精品自产拍在线播放 | 亚洲夜夜网 | 日韩中字在线 | 久久久高清一区二区三区 | 在线观看一区 | 日韩性色| av短片在线 | 一区二区三区四区影院 | 在线视频91 | 日本一区二区免费在线观看 | 手机av片| 中国一级片在线观看 | 国产艹b视频| 99热精品久久 | 国产精品成人a免费观看 | 在线观看免费av网 | 中文字幕超清在线免费 | 黄网av在线 | 久久在线观看 | 三级av免费| 色丁香综合 | 亚洲精品18日本一区app | 麻豆视频在线免费看 | 免费男女羞羞的视频网站中文字幕 | 九月婷婷人人澡人人添人人爽 | 福利在线看片 | 免费看国产黄色 | 狠狠的干狠狠的操 | 国产成a人亚洲精v品在线观看 | 五月婷综合 | 九九九在线 | 久久99精品国产99久久 | 精品亚洲欧美一区 | 亚洲一区二区三区精品在线观看 | 日韩中文字幕免费视频 | 国产99久久久国产精品免费看 | 亚洲精品在线免费 | 香蕉久久久久久久 | 天天色图 | 国产日韩视频在线观看 | 欧美xxxxx在线视频 | 911久久香蕉国产线看观看 | 99热这里只有精品免费 | 在线午夜 | 国产一区二区精品91 | 四虎影视精品永久在线观看 | 九九热有精品 | 色偷偷中文字幕 | 一区精品在线 | 99国产精品久久久久久久久久 | 中文字幕中文字幕在线一区 | 一级欧美黄 | 国产在线免费 | 精品av网站| 日韩av中文在线观看 | 成年人黄色大全 | 91视频在线国产 | 久久国产精品成人免费浪潮 | 操操操人人 | 久久这里只有精品视频99 | 久久精品9 | 国产一区二区在线免费播放 | 蜜臀av性久久久久av蜜臀妖精 | 视频在线国产 | 五月婷婷操 | 丁香亚洲| 黄色www在线观看 | 精品在线不卡 | 成人一级视频在线观看 | 99视频偷窥在线精品国自产拍 | 欧美日韩国产免费视频 | 一区二区三区四区不卡 | 99久久精品无码一区二区毛片 | 中文国产在线观看 | 欧美精品在线观看免费 | 97国产精品亚洲精品 | 91精品在线免费视频 | 黄污在线观看 | 91精彩视频在线观看 | 久久精品网址 | 国产一二区精品 | 99久久99热这里只有精品 | 国产成人久久精品77777 | 91自拍成人 | 精品高清美女精品国产区 | 91成人免费看 | 99爱爱| 免费观看的黄色片 | av理论电影 | 亚洲精品视频免费在线 | 99成人免费视频 | 在线视频app | 日韩欧美在线免费观看 | 精品国产大片 | 黄色美女免费网站 | av在线电影免费观看 | 日韩一区二区三 | 色婷婷激情综合 | 米奇影视7777| 夜夜干天天操 | 我要色综合天天 | 国产中的精品av小宝探花 | 成人av高清在线观看 | 亚洲精品在线国产 | 精品一区二区三区四区在线 | 99色视频在线 | 欧美男同网站 | 免费a视频 | 亚洲 精品在线视频 | 久久精品高清 | 国产高清在线一区 | 国产精品18毛片一区二区 | 日日干网 | 国产99久久 | 日韩伦理片hd | 国产资源免费 | 日本韩国在线不卡 | 丝袜美女在线观看 | 99在线免费视频 | 中文字幕乱偷在线 | 免费a网站 | 国产精品成人aaaaa网站 | 夜夜骑天天操 | 欧美国产精品一区二区 | 久久免费国产电影 | 麻豆精品在线视频 | 亚洲免费精品视频 | 欧美日韩免费看 | 欧美伦理一区 | 国产精品中文 | 成人久久久久久久久久 | 成人国产一区 | 免费黄色av片| 热久久99这里有精品 | 欧美性做爰猛烈叫床潮 | 亚洲五月婷 | 伊人官网 | 久久久久中文 | aaawww| 又黄又爽又色无遮挡免费 | 国产99久久精品一区二区300 | 天天操天天怕 | 成人午夜电影在线 | 精品专区一区二区 | 国产一区二区视频在线 | 久久a热6| 国产精品高潮呻吟久久av无 | 丁香久久| 欧美在线18 | 四川bbb搡bbb爽爽视频 | 六月丁香伊人 | 久久精品视频4 | 91在线播放国产 | 一区二区三区精品在线视频 | 久草免费电影 | 国产视频日本 | 在线黄色av电影 | 欧美福利在线播放 | 超碰人人乐 | 国产精品一区在线 | 黄色在线视频网址 | 国产网站在线免费观看 | 天天射色综合 | 91成人精品一区在线播放 | 国产一区二区手机在线观看 | 免费观看视频的网站 | 久青草电影 | 国产精品九九热 | 黄色影院在线免费观看 | 丁香六月av | 9色在线视频 | 五月婷影院 | 免费在线观看国产精品 | 国产精品日韩在线观看 | 美女久久久久久久久久 | 99在线播放 | 亚洲国产精品一区二区久久,亚洲午夜 | 欧美a级免费视频 | 欧美精品亚州精品 | 亚洲精品免费观看视频 | 日日操天天操狠狠操 | 男女啪啪网站 | 亚洲视频1区2区 | 狠狠激情中文字幕 | 草久在线播放 | 日韩大片在线免费观看 | 日本黄色免费观看 | 在线免费观看视频一区 | 亚洲成人av在线播放 | 天天干天天射天天插 | av解说在线观看 | 四虎影视8848dvd | 久久精品91久久久久久再现 | 日韩视频1区 | 天天草天天色 | 亚洲成年人免费网站 | 99久久这里只有精品 | 亚洲日本黄色 | 国产中文字幕久久 | 97国产精品久久 | 成全在线视频免费观看 | 国产又粗又长又硬免费视频 | 中文字幕亚洲字幕 | 国产亚洲精品xxoo | 91精品国产综合久久福利不卡 | 日韩av专区 | 狠狠搞,com | 日日夜夜天天人人 | 月下香电影 | 手机在线日韩视频 | 免费视频97| 99激情网 | 麻豆91小视频| 96香蕉视频 | 996久久国产精品线观看 | 人人爱夜夜操 | 午夜在线看 | 欧美日韩在线观看一区二区 | 四虎视频 | 精品亚洲欧美一区 | 日韩美在线观看 | 1024手机看片国产 | 91桃色在线播放 | 久久久污| 808电影免费观看三年 | 免费看黄色91 | av中文电影 | 中文字幕第一页在线播放 | 久久久久久影视 | 国产一二区视频 | a电影免费看 | 久久久精品欧美一区二区免费 | 国产精品都在这里 | 日韩欧美精选 | 99久久www| 在线观看视频在线观看 | 99久久精品国产毛片 | 综合色影院| 99精品免费在线 | 国色综合| 国产精品av免费 | 97人人澡人人爽人人模亚洲 | 女人18毛片a级毛片一区二区 | 久久综合偷偷噜噜噜色 | 日韩久久精品一区二区三区 | 操操色 | 91在线色| 天天爽网站 | 精品久久久一区二区 | 久久精品观看 | 亚洲精品在线二区 | 2019天天干天天色 | 免费色网站 | 伊人电影在线观看 | 久久人人爽人人 | 日韩av电影手机在线观看 | 欧美 日韩 国产 成人 在线 | 色婷婷亚洲综合 | 在线免费黄色av | 国产原创av在线 | www91在线观看 | 蜜臀久久99精品久久久无需会员 | 国产一区视频在线观看免费 | 日日碰狠狠添天天爽超碰97久久 | 激情久久伊人 | 日本午夜在线亚洲.国产 | 日日射天天射 | 波多野结衣久久精品 | 五月婷婷综合在线视频 | 欧洲一区二区三区精品 | 日韩中文在线视频 | 精品乱码一区二区三四区 | 在线www色 | 国产高清不卡在线 | 久久一级电影 | 免费观看的黄色片 | 日韩三级av | 欧美日韩不卡一区二区 | 国产人免费人成免费视频 | 久久99在线视频 | 日韩免费视频一区二区 | 日本最新一区二区三区 | 久久久国产精品一区二区三区 | 91精品久久久久久综合乱菊 | 在线免费亚洲 | 国产精品午夜久久 | 在线观看午夜av | 欧美日韩三级 | 亚洲激情视频在线观看 | 国产精品久久久久永久免费 | 五月婷婷一区二区三区 | 色5月婷婷| 国产精品一区在线播放 | 国产精品嫩草在线 | 四虎成人免费影院 | 日韩欧美一区二区不卡 | 国产专区在线看 | 91香蕉久久 | 手机在线中文字幕 | 麻豆综合网| 日韩电影久久久 | 成人黄色小说网 | 人人干干人人 | 日韩精品免费一区二区 | 国产一级片不卡 | 99视频在线精品免费观看2 | 色爱区综合激月婷婷 | 少妇精品久久久一区二区免费 | 在线观看va | 久久亚洲热 | av免费线看 | 欧美久久久久久久久久久久久 | 中国一级片在线观看 | 免费看片成人 | 国产一级h | 精品国产精品久久一区免费式 | 久草观看 | 色综合久久精品 | 最近中文字幕视频网 | av资源在线观看 | 欧美激情视频一区 | 国产91免费在线观看 | 久久97超碰 | 国产视频午夜 | 免费激情网 | 黄色免费电影网站 | 午夜黄色大片 | 成人a视频在线观看 | 久久久久五月天 | 国产精品一区久久久久 | 九九免费视频 | 婷婷丁香激情五月 | 在线视频区 | 91视频中文字幕 | 欧美一级电影在线观看 | 天天操夜夜逼 | 国产精品日韩欧美一区二区 | 免费视频国产 | 久久精品中文字幕一区二区三区 | 国产成人精品久久久久 | 蜜臀久久99精品久久久无需会员 | 成年人网站免费观看 | 久久午夜国产精品 | 亚洲精品美女久久 | 国产成人一区二区三区电影 | www.色com| 亚洲资源在线观看 | 亚洲精品在线观看免费 | 人人插人人玩 | 天天爱天天射 | 久久久久久久久久久电影 | 18久久久久 | 97超碰人人澡人人 | 国产精品久久伊人 | 免费观看午夜视频 | 日韩精品一区在线观看 | 欧美日韩一区二区三区在线观看视频 | 九九热免费在线观看 | 91电影福利| 五月天激情综合 | 日韩一区二区三 | 人人干,人人爽 | 婷香五月 | 日本一区二区三区免费看 | 五月亚洲婷婷 | 久久久久久久久影视 | 国产精品高潮在线观看 | 亚洲精品国产自产拍在线观看 | 久久久久久久久久久久久久av | av成人在线看 | 久久99视频免费 | 成人午夜精品久久久久久久3d | 91精品国产乱码在线观看 | 日韩成人免费在线观看 | 9ⅰ精品久久久久久久久中文字幕 | 国产色拍拍拍拍在线精品 | 99热这里只有精品在线观看 | 国产黄色播放 | 久久电影中文字幕视频 | 西西大胆啪啪 | 国产精品一区二区久久 | 99精品视频免费在线观看 | 亚洲精色| 日本黄色免费在线 | 亚洲最大av在线播放 | 欧美一区二区三区在线视频观看 | 在线中文字幕网站 | 日韩黄视频 | 久久不见久久见免费影院 | 日韩在线观看免费 | 国内精品在线看 | 日韩网站一区二区 | 国产中文字幕大全 | 日韩欧美视频一区 | 国产精品一区二区 91 | 在线国产黄色 | 欧美一区二区三区特黄 | 日韩手机视频 | 国产破处在线播放 | 一级黄色片在线免费看 | 中文字幕在线色 | 亚洲情感电影大片 | 国产999在线观看 | 亚洲在线资源 | 国产喷水在线 | 999免费视频 | 久久色中文字幕 | 日韩在线免费不卡 | 一区二区丝袜 | 91av网址| 亚洲理论在线 | 国产精品高清av | 欧美一区二区视频97 | av免费观看网址 | 久久综合之合合综合久久 | 黄色大片入口 | 久久精品99久久 | 成人app在线播放 | 麻豆精品视频在线观看免费 | 国产在线观看你懂的 | 在线看欧美 | 日韩三级av| 国产亚洲午夜高清国产拍精品 | 国产精品久久久久久久久久久久久 | 麻豆视频免费网站 | 色视频成人在线观看免 | 美腿丝袜一区二区三区 | 伊人一级 | 久久国产精品免费观看 | 日韩视频免费看 | 色综合久久久久综合体桃花网 | 毛片在线播放网址 | 亚州精品成人 | 国产麻豆果冻传媒在线观看 | 国产精品久久一区二区三区, | 一区二区成人国产精品 | 久久久久免费看 | 日韩精品无码一区二区三区 | 在线国产激情视频 | 九九热在线观看 | av片子在线观看 | 欧美日韩在线免费观看视频 | 最近2019好看的中文字幕免费 | 欧美一级特黄aaaaaa大片在线观看 | 欧美日韩精品二区第二页 | 男女啪啪免费网站 | 免费观看第二部31集 | 亚洲综合欧美激情 | 69av视频在线 | 久久精选 | 久久全国免费视频 | 精品久久久久久综合 | 日韩综合在线观看 | 91成人在线观看高潮 | 深爱激情亚洲 | 久久久久久久久久亚洲精品 | 国产精品v a免费视频 | 亚洲精品永久免费视频 | 一区国产精品 | 黄色小说视频网站 | 丰满少妇在线观看网站 | 欧美日韩有码 | 最近在线中文字幕 | 91精品国产自产在线观看永久 | 欧美在线视频不卡 | 粉嫩av一区二区三区四区在线观看 | 六月婷婷网 | 天躁狠狠躁 | 区一区二区三在线观看 | 国产99色 | 国产99久久久国产精品免费二区 | 99在线精品观看 | 97在线观看免费高清完整版在线观看 | 99视频国产精品免费观看 | 99在线精品观看 | 日韩三级中文字幕 | 91新人在线观看 | 国产精品涩涩屋www在线观看 | 91网在线观看 | 97av在线视频免费播放 | 精品国产1区 | a黄色大片| 亚洲.www| 国产黄色一级片在线 | 日韩一区二区三免费高清在线观看 | 国产专区在线 | 国产手机在线播放 | 久久综合久久伊人 | 日本精品一区二区三区在线播放视频 | 91麻豆精品国产91久久久无限制版 | 国产精品麻豆三级一区视频 | 亚洲成人av影片 | 国产精品久久久久影视 | 特黄特色特刺激视频免费播放 | 成人免费xyz网站 | 四虎永久网站 | 久久精品xxx | 日韩在线观看视频一区二区三区 | 91cn国产在线 | 免费看污网站 | 国产精品剧情在线亚洲 | 精品国产乱码一区二区三区在线 | 探花视频免费观看 | 免费欧美| 国产在线观看xxx | 日本mv大片欧洲mv大片 | 国产a免费 | av在线不卡观看 | 五月婷婷激情六月 | 91手机视频在线 | 国产 日韩 欧美 中文 在线播放 | 国产精品免费在线播放 | 欧美激情精品久久久久久变态 | 国产在线观看国语版免费 | 日韩视频在线播放 | 狠狠干狠狠操 | 日韩狠狠操 | 久久色视频 | www.日韩免费| 在线日本看片免费人成视久网 | 狠狠干电影 | 特级毛片网 | 一区二区三区视频网站 | 免费看三片 | av福利网址导航大全 | 狠狠干2018 | 99视频在线免费观看 | 午夜精品一二三区 | 偷拍精品一区二区三区 | 国产一级三级 | 亚洲国产手机在线 | 欧美日韩高清一区二区 国产亚洲免费看 | 黄色片网站av | 国产精品视频资源 | 91在线播放综合 | 91av原创 | 在线观看你懂的网址 | 美女视频黄频 | 最新av观看 | 欧美一区二区三区激情视频 | 黄色软件网站在线观看 | 亚洲一区在线看 | 久久综合中文色婷婷 | 一级免费黄视频 | 国产在线视频不卡 | 久久理论影院 | 在线免费高清一区二区三区 | 国产精品欧美精品 | 亚洲婷婷伊人 | 国产一级视频在线观看 | 草草草影院 | 色综合天天视频在线观看 | 91成人看片 | 亚洲精品88欧美一区二区 | 国产麻豆果冻传媒在线观看 | 久久久久久久久久伊人 | 久久99久久99精品中文字幕 | 亚洲视频aaa| 国产精品va最新国产精品视频 | 在线观看视频在线 | 日本不卡123 | 波多野结衣电影久久 | 国产偷v国产偷∨精品视频 在线草 | 国产美女精彩久久 | 成人久久久电影 | 天天爽天天碰狠狠添 | 夜夜爽88888免费视频4848 | 在线看岛国av | 国产精品伦一区二区三区视频 | 456成人精品影院 | 婷婷色综合 | 91在线播放国产 | 96久久久 | 国产精品完整版 | av黄色亚洲 | 手机看片国产 | 婷婷色综| 91成人精品国产刺激国语对白 | 欧美精品小视频 | 99精品系列 | 色婷婷激情电影 | 国产免费观看av | av在线h| 国产精品久久久久久久久软件 | 久久久精品二区 | 久久久精品 一区二区三区 国产99视频在线观看 | 在线影视 一区 二区 三区 | 午夜免费在线观看 | 伊人看片 |