微博系统Sharetronix 部分代码分析

2023-05-16

所有连接请求都经过根目录里的.htaccess处理了url rewrite

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [NE,L]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>

现在所有请求都发送给index.php作为参数
index.php仅加载 ./system/LOADER.php
LOADER.php

$SCRIPT_START_TIME = microtime(TRUE);
//microtime() 函数返回当前 Unix 时间戳和微秒数。
//如果给出了 get_as_float 参数并且其值等价于 TRUE,该函数将返回一个浮点数。
chdir(dirname(__FILE__));
//切换路径到当前文件所属路径: ./system/
require_once('./helpers/func_main.php');
//调用库函数,func_main.php的第一个__autoload方法会自动加载system/class/目录下的所有类
require_once('./conf_system.php');
//调用配置参数,主要是会引用conf_main.php,一个安装后生成的配置文件,有数据库信息
session_start(); //开启php session机制
$cache = new cache(); //创建一个system/classes/class_cache.php类的实例
$db1 = new mysql($C->DB_HOST, $C->DB_USER, $C->DB_PASS, $C->DB_NAME);
$db2 = &$db1;
if( ! $C->INSTALLED ) { //conf_main.php里定义的
exit;
}
$network = new network(); //class_network.php
$network->LOAD();
$user = new user(); //class_user.php
$user->LOAD();
ob_start('ob_gzhandler', 6); //缓存输出,callback调用ob_gzhandler
$page = new page();
$page->LOAD();

conf_main.php

<?php
$C->DOMAIN = 'localhost';
$C->SITE_URL = 'http://localhost/';
// Random identifier for this installation on this server
$C->RNDKEY = '15009';
$C->DB_HOST = 'localhost';
$C->DB_USER = 'root';
$C->DB_PASS = '123456';
$C->DB_NAME = 'db_name';
$C->DB_MYEXT = 'mysqli'; // 'mysqli' or 'mysql'
// CACHE SETTINGS
$C->CACHE_MECHANISM = 'filesystem'; // 'apc' or 'memcached' or 'mysqlheap' or 'filesystem'
$C->CACHE_EXPIRE = 3600;
$C->CACHE_KEYS_PREFIX = '15009';
// If 'memcached':
$C->CACHE_MEMCACHE_HOST = '';
$C->CACHE_MEMCACHE_PORT = '';
// If 'filesystem':
$C->CACHE_FILESYSTEM_PATH = $C->INCPATH.'cache/';
// IMAGE MANIPULATION SETTINGS
$C->IMAGE_MANIPULATION = 'gd'; // 'imagemagick_cli' or 'gd'
// if 'imagemagick_cli' - /path/to/convert
$C->IM_CONVERT = 'convert';
// DEFAULT LANGUAGE
$C->LANGUAGE = 'en';
// USERS ACCOUNTS SETTINGS
// if urls are user.site.com or site.com/user
// this setting is still beta and it is not working properly
$C->USERS_ARE_SUBDOMAINS = FALSE;
// RPC PING SETTINGS
$C->RPC_PINGS_ON = TRUE;
$C->RPC_PINGS_SERVERS = array('http://rpc.pingomatic.com');
// TWITTER & FACEBOOK CONNECT SETTINGS
// To activate Facebook Connect, check out the README.txt file
$C->FACEBOOK_API_KEY = '';
// To activate Twitter OAuth login, check out the README.txt file
$C->TWITTER_CONSUMER_KEY = '';
$C->TWITTER_CONSUMER_SECRET = '';
// Bit.ly Integration - used for sharing posts to twitter
$C->BITLY_LOGIN = 'blogtronixmicro';
$C->BITLY_API_KEY = 'R_ffd756f66a4f5082e37989f1bc3301a6';
// For inviting Yahoo contacts. Check out the README.txt file
$C->YAHOO_CONSUMER_KEY = '';
$C->YAHOO_CONSUMER_SECRET = '';
// FOOTER "Powered by Blogtronix" BACKLINK
// The License requires you to keep this backlink. To remove it, visit this page
// and follow the instructions: http://sharetronix.com/sharetronix/linkremoval
// Otherwise you are not allowed to modify this variable or remove the link.
$C->FOOTER_REMOVE_BACKLINK = FALSE;
// IF YOUR SERVER SUPPORTS CRONJOBS, READ THE FILE ./system/cronjobs/readme.txt
$C->CRONJOB_IS_INSTALLED = FALSE;
// DO NOT REMOVE THIS
$C->INSTALLED = TRUE;
$C->VERSION = '1.5.4';
$C->DEBUG_USERS = array();
?>

还没看到怎么调用控制器的,继续查代码
(page类里的_parse_input()方法貌似是处理url字符,做路由选择控制器的)
(load_template()方法应该是调用视图的 )
预留
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微博系统Sharetronix 部分代码分析 的相关文章

  • 使用Node.js版本管理工具管理多个Node.js版本

    使用Node js版本管理工具管理多个Node js版本 前言 本地开发时 xff0c 有时需要多个Node js版本进行验证 xff0c 因此需要一个Node js版本管理工具 Node js版本管理工具有很多 xff0c 如fnm nv
  • gitbook通过markdown制作电子书

    gitbook通过markdown制作电子书 环境 xff1a gitbook cli 2 3 2 2017 07 14 gitbook 3 2 3 2017 08 03 Node js 10 24 1 2021 04 06 npm 6 1
  • mdbook通过markdown制作电子书(代替gitbook)

    mdbook通过markdown制作电子书 代替gitbook 环境 xff1a mdbook v0 4 28 前言 gitbook制作电子书大家已经非常熟悉了 xff0c 但是对于gitbook工具官方已经不再维护了 xff0c 而且环境
  • 解决ubuntu 22.04 vmware无法共享文件问题

    解决ubuntu 22 04 vmware无法共享文件问题 环境 xff1a vmware 16 2 OS ubuntu 22 04 问题 安装完ubuntu 22 04后 xff0c vmtool安装报错 xff0c 无法使用共享文件和屏
  • 查看Android模拟器的实时日志

    查看Android模拟器的实时日志 环境 xff1a OS windows 10 adb 1 0 41 1 下载ADB https dl google com android repository platform tools latest
  • 心情不好

    今天知道了一个非常非常不好的消息 xff0c 突然感觉自己活得很窝囊 xff01 xff01 xff01 xff01 当兄弟有事需要帮忙的时候自己有了无能为力的感觉 所以 xff0c 要变强 xff0c 就算不为了自己 xff0c 也要为了
  • VS2019使用VLD(Visual Leak Detector)检测CPP内存泄漏

    VS2019使用VLD Visual Leak Detector 检测CPP内存泄漏 环境 xff1a 编译器 VS2019 VLD 2 5 1 前言 在windows平台下 xff0c VLD Visual Leak Detector 是
  • windows上Git Bash支持常用命令gcc tree zip wget cmake ninja

    windows上Git Bash支持常用命令gcc tree zip wget cmake ninja 前言 Git Bash基于MinGW64 提供了win32下的linux命令环境 xff0c 如ls cat tar等 但是Git Ba
  • MSVC和MinGW导出的.dll.a和.lib相互调用

    MSVC和MinGW导出的 dll a和 lib相互调用 如需转载请标明出处 xff1a http blog csdn net itas109 环境 xff1a OS windows 10 MinGW64 x86 64 8 1 0 rele
  • windows下源码编译QuickJS动态库

    windows下源码编译QuickJS动态库 如需转载请标明出处 xff1a http blog csdn net itas109 技术交流Q xff1a 129518033 前言 QuickJS是一个小型并且可嵌入的Javascript引
  • C/C++内存泄漏概述、分析、防范和排查

    C C 43 43 内存泄漏概述 分析 防范和排查 如需转载请标明出处 xff1a http blog csdn net itas109 技术交流Q xff1a 129518033 1 概念 狭义上 xff0c 内存泄漏是指动态分配的内存未
  • Linux使用asan排查C/C++内存泄漏

    Linux使用asan排查C C 43 43 内存泄漏 如需转载请标明出处 xff1a https blog csdn net itas109 技术交流 xff1a 129518033 环境 xff1a OS Ubuntu 20 04 Ce
  • windows下使用umdh定位C++内存泄漏

    windows下使用umdh定位C 43 43 内存泄漏 如需转载请标明出处 xff1a https blog csdn net itas109 技术交流 xff1a 129518033 环境 xff1a OS windows 10 190
  • Dear ImGui结合CMake实现基于GLFW和OpenGL3的入门级hello world代码

    Dear ImGui结合CMake实现基于GLFW和OpenGL3的入门级hello world代码 如需转载请标明出处 xff1a https blog csdn net itas109 技术交流 xff1a 129518033 环境 x
  • C++常用第三方库

    C 43 43 常用第三方库 如需转载请标明出处 xff1a https blog csdn net itas109 技术交流 xff1a 129518033 1 框架 Boost 通用C 43 43 标准库 Boost 5 6k 2023
  • windows下源码编译和使用TCMalloc

    windows下源码编译和使用TCMalloc 环境 xff1a OS windows 10 编译器 xff1a vs2019 cmake 3 22 1 tcmalloc gperftools 2 10 前言 TCMalloc是Google
  • SRM340

    本来想比赛的 可是睡着了 5555555555555 CssPropertyConverter http www topcoder com stat c 61 problem statement amp pm 61 7503 amp rd
  • 干货丨MapReduce的工作流程是怎样的?

    MapReduce编程模型开发简单且功能强大 xff0c 专门为并行处理大规模数据量而设计 xff0c 接下来 xff0c 我们通过一张图来描述MapReduce的工作过程 xff0c 如下图所示 在图中 xff0c MapReduce的工
  • gerrit中 refs/for 和 refs/heads

    简单点说 xff0c 就是refs for mybranch需要经过code review之后才可以提交 xff1b refs heads mybranch不需要code review 如 xff1a 如果需要code review xff
  • 大学生创业团队组建的几点建议

    大学生创业是一条不归路 xff0c 创业的道路上充满了荆棘 道路虽然艰苦 xff0c 但很充实 如果就业 考研 考公务员是按常规出牌 xff0c 那么创业就是非常规出牌了 如果一个人要想成功 xff0c 我个人认为必须要按 非常规出牌 我自

随机推荐