Inhaltsverzeichnis
ThinkPHP中Common/common.php文件常用函数功能分析,
Heim php教程 php手册 ThinkPHP中Common/common.php文件常用函数功能分析,

ThinkPHP中Common/common.php文件常用函数功能分析,

Jun 12, 2016 pm 04:30 PM
thinkphp 常用函数

ThinkPHP中Common/common.php文件常用函数功能分析,

本文实例分析了ThinkPHP/Common/common.php文件常用函数功能。分享给大家供大家参考,具体如下:

/**
 * 获取和设置配置参数 支持批量定义
 * @param string|array $name 配置变量
 * @param mixed $value 配置值
 * @return mixed
 */
function C($name=null, $value=null) {
  static $_config = array();
  // 无参数时获取所有
  if (empty($name)) {
    if(!empty($value) && $array = cache('c_'.$value)) {
      //array_change_key_case():将数组中的所有键名改为全小写或大写,默认会改为全小写
      $_config = array_merge($_config, array_change_key_case($array));
    }
    return $_config;
  }
  // 优先执行设置获取或赋值,如果参数2为空,则为获取配置配置变量的值的情况;如果参数2不为空,则是为配置变量设置值的情况
  if (is_string($name)) {//给配置变量设置值或者获取配置变量的值
    if (!strpos($name, '.')) {//如果配置变量名中没有".",则执行下面代码
      $name = strtolower($name);//将配置变量名转化为小写
      if (is_null($value))
        return isset($_config[$name]) ? $_config[$name] : null;//获取配置变量值的情况,返回配置变量的值
      $_config[$name] = $value;//给配置变量设置值的情况
      return;
    }
    // 二维数组设置和获取支持
    $name = explode('.', $name);
    $name[0]  = strtolower($name[0]);
    if (is_null($value))
      return isset($_config[$name[0]][$name[1]]) ? $_config[$name[0]][$name[1]] : null;//获取值的情况
    $_config[$name[0]][$name[1]] = $value;//赋值的情况
    return;
  }
  // 批量设置
  if (is_array($name)){//批量设置值
    //array_change_key_case():将数组中的所有键名改为全小写或大写,默认会改为全小写,注意:只是将键名改为小写哦
    $_config = array_merge($_config, array_change_key_case($name));
    if(!empty($value)) {// 保存配置值
      cache('c_'.$value,$_config);
    }
    return;
  }
  return null; // 避免非法参数
}

Nach dem Login kopieren
/**
 * 处理标签扩展,如: 项目开始标签的调用,tag('app_begin');
 * @param string $tag 标签名称
 * @param mixed $params 传入参数
 * @return mixed
 */
function tag($tag, &$params=NULL) {
  // 系统或框架标签扩展
  // C('extends', include THINK_PATH.'Conf/tags.php');//这个文件很重要
  $extends  = C('extends.' . $tag);//$_config['extends'][app_init]
  // 应用或项目标签扩展
  // C('tags', include CONF_PATH.'tags.php'); //项目中也可以编写自己的tags.php文件
  $tags    = C('tags.' . $tag);//$_config['tags'][app_init]
  if (!empty($tags)) {//如果$tags不为空
    if(empty($tags['_overlay']) && !empty($extends)) { // 合并扩展
      $tags = array_unique(array_merge($extends,$tags));
    }elseif(isset($tags['_overlay'])){ // 通过设置 '_overlay'=>1 覆盖系统标签
      unset($tags['_overlay']);
    }
  }elseif(!empty($extends)) {
    $tags = $extends;
  }
  if($tags) {
    if(APP_DEBUG) {
      G($tag.'Start');
      trace('[ '.$tag.' ] --START--','','INFO');
    }
    // 执行扩展
    foreach ($tags as $key=>$name) {
      if(!is_int($key)) { // 指定行为类的完整路径 用于模式扩展
        $name  = $key;
      }
      //创建行为类对象,如:$class=$name.'Behavior';$behavior  = new $class();//创建一个行为类对象
      B($name, $params);//执行某个行为,参数1-行为名称  参数2-传入的参数
    }
    if(APP_DEBUG) { // 记录行为的执行日志
      trace('[ '.$tag.' ] --END-- [ RunTime:'.G($tag.'Start',$tag.'End',6).'s ]','','INFO');
    }
  }else{ // 未执行任何行为 返回false
    return false;
  }
}

Nach dem Login kopieren
/**
 * 执行某个行为
 * @param string $name 行为名称
 * @param Mixed $params 传人的参数
 * @return void
 */
function B($name, &$params=NULL) {
  //行为类在Think.class.php文件中的autoload($class)函数中自动加载
  $class   = $name.'Behavior';//行为类的名称
  G('behaviorStart');
  $behavior  = new $class();//创建一个行为类对象
  $behavior->run($params);//给当前行为类对象传递参数
  if(APP_DEBUG) { // 记录行为的执行日志
    trace('Run '.$name.' Behavior [ RunTime:'.G('behaviorStart','behaviorEnd',6).'s ]','','INFO');
  }
}

Nach dem Login kopieren

注意:行为类、模型类、控制器类 都是在Think.class.php文件中的autoload函数中自动加载的:

/**
* 系统自动加载ThinkPHP类库
* 并且支持配置自动加载路径
* @param string $class 对象类名
* @return void
*/
//行为类、模型类、控制器类 都是通过autoload函数自动加载的
public static function autoload($class) {
    // 检查是否存在别名定义
    if(alias_import($class)) return ;
    //行为类都是通过此函数自动加载的
    if(substr($class,-8)=='Behavior') { // 加载行为
      if(require_cache(CORE_PATH.'Behavior/'.$class.'.class.php')
        || require_cache(EXTEND_PATH.'Behavior/'.$class.'.class.php')
        || require_cache(LIB_PATH.'Behavior/'.$class.'.class.php')
        || (defined('MODE_NAME') && require_cache(MODE_PATH.ucwords(MODE_NAME).'/Behavior/'.$class.'.class.php'))) {
        return ;
      }
    }elseif(substr($class,-5)=='Model'){ // 加载模型
      if((defined('GROUP_NAME') && require_cache(LIB_PATH.'Model/'.GROUP_NAME.'/'.$class.'.class.php'))
        || require_cache(LIB_PATH.'Model/'.$class.'.class.php')
        || require_cache(EXTEND_PATH.'Model/'.$class.'.class.php') ) {
        return ;
      }
    }elseif(substr($class,-6)=='Action'){ // 加载控制器
      if((defined('GROUP_NAME') && require_cache(LIB_PATH.'Action/'.GROUP_NAME.'/'.$class.'.class.php'))
        || require_cache(LIB_PATH.'Action/'.$class.'.class.php')
        || require_cache(EXTEND_PATH.'Action/'.$class.'.class.php') ) {
        return ;
      }
    }
    // 根据自动加载路径设置进行尝试搜索
    $paths =  explode(',',C('APP_AUTOLOAD_PATH'));
    foreach ($paths as $path){
      if(import($path.'.'.$class))
        // 如果加载类成功则返回
        return ;
    }
}

Nach dem Login kopieren

PS:这里推荐几款本站的格式化/美化/转换工具可以帮助你整理杂乱无章的代码,相信大家在以后的开发中能够用得上:

php代码在线格式化美化工具:
http://tools.jb51.net/code/phpformat

JavaScript代码美化/压缩/格式化/加密工具:
http://tools.jb51.net/code/jscompress

在线XML格式化/压缩工具:
http://tools.jb51.net/code/xmlformat

JSON代码格式化美化工具:
http://tools.jb51.net/code/json

在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson

json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.jb51.net/code/jsoncodeformat

sql代码在线格式化美化工具:
http://tools.jb51.net/code/sqlcodeformat

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《PHP中cookie用法总结》、《smarty模板入门基础教程》及《PHP模板技术总结》。

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

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So führen Sie das Thinkphp-Projekt aus So führen Sie das Thinkphp-Projekt aus Apr 09, 2024 pm 05:33 PM

Um das ThinkPHP-Projekt auszuführen, müssen Sie: Composer installieren, das Projektverzeichnis aufrufen und http://localhost:8000 aufrufen.

Es gibt mehrere Versionen von thinkphp Es gibt mehrere Versionen von thinkphp Apr 09, 2024 pm 06:09 PM

ThinkPHP verfügt über mehrere Versionen, die für verschiedene PHP-Versionen entwickelt wurden. Zu den Hauptversionen gehören 3.2, 5.0, 5.1 und 6.0, während Nebenversionen dazu dienen, Fehler zu beheben und neue Funktionen bereitzustellen. Die neueste stabile Version ist ThinkPHP 6.0.16. Berücksichtigen Sie bei der Auswahl einer Version die PHP-Version, die Funktionsanforderungen und den Community-Support. Für optimale Leistung und Support wird empfohlen, die neueste stabile Version zu verwenden.

So führen Sie thinkphp aus So führen Sie thinkphp aus Apr 09, 2024 pm 05:39 PM

Schritte zum lokalen Ausführen von ThinkPHP Framework: Laden Sie ThinkPHP Framework herunter und entpacken Sie es in ein lokales Verzeichnis. Erstellen Sie einen virtuellen Host (optional), der auf das ThinkPHP-Stammverzeichnis verweist. Konfigurieren Sie Datenbankverbindungsparameter. Starten Sie den Webserver. Initialisieren Sie die ThinkPHP-Anwendung. Greifen Sie auf die URL der ThinkPHP-Anwendung zu und führen Sie sie aus.

Entwicklungsvorschläge: So verwenden Sie das ThinkPHP-Framework zur Implementierung asynchroner Aufgaben Entwicklungsvorschläge: So verwenden Sie das ThinkPHP-Framework zur Implementierung asynchroner Aufgaben Nov 22, 2023 pm 12:01 PM

„Entwicklungsvorschläge: So verwenden Sie das ThinkPHP-Framework zur Implementierung asynchroner Aufgaben“ Mit der rasanten Entwicklung der Internettechnologie stellen Webanwendungen immer höhere Anforderungen an die Verarbeitung einer großen Anzahl gleichzeitiger Anforderungen und komplexer Geschäftslogik. Um die Systemleistung und das Benutzererlebnis zu verbessern, erwägen Entwickler häufig die Verwendung asynchroner Aufgaben, um einige zeitaufwändige Vorgänge auszuführen, z. B. das Senden von E-Mails, das Verarbeiten von Datei-Uploads, das Erstellen von Berichten usw. Im Bereich PHP bietet das ThinkPHP-Framework als beliebtes Entwicklungsframework einige praktische Möglichkeiten zur Implementierung asynchroner Aufgaben.

Was ist besser, Laravel oder Thinkphp? Was ist besser, Laravel oder Thinkphp? Apr 09, 2024 pm 03:18 PM

Leistungsvergleich von Laravel- und ThinkPHP-Frameworks: ThinkPHP schneidet im Allgemeinen besser ab als Laravel und konzentriert sich auf Optimierung und Caching. Laravel schneidet gut ab, aber für komplexe Anwendungen ist ThinkPHP möglicherweise besser geeignet.

So installieren Sie thinkphp So installieren Sie thinkphp Apr 09, 2024 pm 05:42 PM

ThinkPHP-Installationsschritte: Bereiten Sie PHP-, Composer- und MySQL-Umgebungen vor. Erstellen Sie Projekte mit Composer. Installieren Sie das ThinkPHP-Framework und die Abhängigkeiten. Datenbankverbindung konfigurieren. Anwendungscode generieren. Starten Sie die Anwendung und besuchen Sie http://localhost:8000.

Wie ist die Leistung von thinkphp? Wie ist die Leistung von thinkphp? Apr 09, 2024 pm 05:24 PM

ThinkPHP ist ein leistungsstarkes PHP-Framework mit Vorteilen wie Caching-Mechanismus, Codeoptimierung, Parallelverarbeitung und Datenbankoptimierung. Offizielle Leistungstests zeigen, dass es mehr als 10.000 Anfragen pro Sekunde verarbeiten kann und in großen Websites und Unternehmenssystemen wie JD.com und Ctrip in praktischen Anwendungen weit verbreitet ist.

Entwicklungsvorschläge: So verwenden Sie das ThinkPHP-Framework für die API-Entwicklung Entwicklungsvorschläge: So verwenden Sie das ThinkPHP-Framework für die API-Entwicklung Nov 22, 2023 pm 05:18 PM

Entwicklungsvorschläge: So verwenden Sie das ThinkPHP-Framework für die API-Entwicklung Mit der kontinuierlichen Entwicklung des Internets ist die Bedeutung von API (Application Programming Interface) immer wichtiger geworden. Die API ist eine Brücke für die Kommunikation zwischen verschiedenen Anwendungen. Sie kann Datenaustausch, Funktionsaufrufe und andere Vorgänge realisieren und bietet Entwicklern eine relativ einfache und schnelle Entwicklungsmethode. Als hervorragendes PHP-Entwicklungsframework ist das ThinkPHP-Framework effizient, skalierbar und einfach zu verwenden.

See all articles