不积跬步无以至千里

记录精彩的程序人生

  • 首页
  • Java
  • Golang
  • PHP
  • Python
  • Nodejs
  • Lua
  • Docker
  • DevOps
  • 文章归档
  • 默认分类
  • 关于
  • 标签

  • 搜索
PostgreSQL hbase 时间同步 nexus 开机启动 nexus, 开机启动 jenkins安装配置 gitlab安装配置 gitlab安装 文件系统 fastdfs gcc切换 gcc升级 mysql8 交换空间 虚拟内存 tcp thrift lua tag test VPN SoftEtherVPN homebrew asm spring tomcat maven jdk ios mac 图案字符 figlet mysql半同步复制 mysql主从同步 一主多从 一主一从 主从同步 反向代理 密码重置 test 虚拟机扩容 swap 虚拟空间 docker ldocker grpc-gateway protobuf 微服务 go grp GRPC 授权登录 OAuth2.0 SOA supervisord supervisor RPC CentOS rabbitmq 环境变量 php-fpm php.ini error php7 lnmp 编译安装 mysql nginx linux java php python redis 字符串操作 mysql5.7 Solo

微博系统Sharetronix 部分代码分析

发表于 2020-01-18 | 分类于 默认分类 | 0 | 阅读次数 54970
  1. 所有连接请求都经过根目录里的.htaccess处理了url rewrite
    1. <IfModule mod_rewrite.c>
    2.  RewriteEngine On
    3.  RewriteBase /
    4.  RewriteCond %{REQUEST_FILENAME} !-f
    5.  RewriteCond %{REQUEST_FILENAME} !-d
    6.  RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [NE,L]
    7.  RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
    8. </IfModule> 
  2. 现在所有请求都发送给index.php作为参数
  3. index.php仅加载 ./system/LOADER.php
  4. LOADER.php
    1. $SCRIPT_START_TIME  = microtime(TRUE);
    2. //microtime() 函数返回当前 Unix 时间戳和微秒数。
    3. //如果给出了 get_as_float 参数并且其值等价于 TRUE,该函数将返回一个浮点数。
    4. chdir(dirname(__FILE__));
    5. //切换路径到当前文件所属路径: ./system/
    6. require_once('./helpers/func_main.php');
    7. //调用库函数,func_main.php的第一个__autoload方法会自动加载system/class/目录下的所有类
    8. require_once('./conf_system.php');
    9. //调用配置参数,主要是会引用conf_main.php,一个安装后生成的配置文件,有数据库信息
    10. session_start();   //开启php session机制
    11. $cache  = new cache();   //创建一个system/classes/class_cache.php类的实例
    12. $db1 = new mysql($C->DB_HOST, $C->DB_USER, $C->DB_PASS, $C->DB_NAME);
    13. $db2 = &$db1;
    14. if( ! $C->INSTALLED ) {   //conf_main.php里定义的
    15.     exit;
    16. }
    17. $network    = new network();   //class_network.php
    18. $network->LOAD();
    19. $user       = new user();   //class_user.php
    20. $user->LOAD();
    21. ob_start('ob_gzhandler', 6);   //缓存输出,callback调用ob_gzhandler
    22. $page       = new page();
    23. $page->LOAD();
  5. conf_main.php
    1. <?php
    2. $C->DOMAIN      = 'localhost';
    3. $C->SITE_URL    = 'http://localhost/';
    4. // Random identifier for this installation on this server
    5. $C->RNDKEY  = '15009';
    6. $C->DB_HOST = 'localhost';
    7. $C->DB_USER = 'root';
    8. $C->DB_PASS = '123456';
    9. $C->DB_NAME = 'db_name';
    10. $C->DB_MYEXT = 'mysqli'; // 'mysqli' or 'mysql'
    11. // CACHE SETTINGS
    12. $C->CACHE_MECHANISM = 'filesystem'; // 'apc' or 'memcached' or 'mysqlheap' or 'filesystem'
    13. $C->CACHE_EXPIRE        = 3600;
    14. $C->CACHE_KEYS_PREFIX   = '15009';
    15. // If 'memcached':
    16. $C->CACHE_MEMCACHE_HOST = '';
    17. $C->CACHE_MEMCACHE_PORT = '';
    18. // If 'filesystem':
    19. $C->CACHE_FILESYSTEM_PATH   = $C->INCPATH.'cache/';
    20. // IMAGE MANIPULATION SETTINGS
    21. $C->IMAGE_MANIPULATION  = 'gd'; // 'imagemagick_cli' or 'gd'
    22. // if 'imagemagick_cli' - /path/to/convert
    23. $C->IM_CONVERT  = 'convert';
    24. // DEFAULT LANGUAGE
    25. $C->LANGUAGE    = 'en';
    26. // USERS ACCOUNTS SETTINGS
    27. // if urls are user.site.com or site.com/user
    28. // this setting is still beta and it is not working properly
    29. $C->USERS_ARE_SUBDOMAINS    = FALSE;
    30. // RPC PING SETTINGS
    31. $C->RPC_PINGS_ON        = TRUE;
    32. $C->RPC_PINGS_SERVERS   = array('http://rpc.pingomatic.com');
    33. // TWITTER & FACEBOOK CONNECT SETTINGS
    34. // To activate Facebook Connect, check out the README.txt file
    35. $C->FACEBOOK_API_KEY        = '';
    36. // To activate Twitter OAuth login, check out the README.txt file
    37. $C->TWITTER_CONSUMER_KEY    = '';
    38. $C->TWITTER_CONSUMER_SECRET = '';
    39. // Bit.ly Integration - used for sharing posts to twitter
    40. $C->BITLY_LOGIN         = 'blogtronixmicro';
    41. $C->BITLY_API_KEY           = 'R_ffd756f66a4f5082e37989f1bc3301a6';
    42. // For inviting Yahoo contacts. Check out the README.txt file
    43. $C->YAHOO_CONSUMER_KEY      = '';
    44. $C->YAHOO_CONSUMER_SECRET   = '';
    45. // FOOTER "Powered by Blogtronix" BACKLINK
    46. // The License requires you to keep this backlink. To remove it, visit this page
    47. // and follow the instructions: http://sharetronix.com/sharetronix/linkremoval
    48. // Otherwise you are not allowed to modify this variable or remove the link.
    49. $C->FOOTER_REMOVE_BACKLINK  = FALSE;
    50. // IF YOUR SERVER SUPPORTS CRONJOBS, READ THE FILE ./system/cronjobs/readme.txt
    51. $C->CRONJOB_IS_INSTALLED    = FALSE;
    52. // DO NOT REMOVE THIS
    53. $C->INSTALLED   = TRUE;
    54. $C->VERSION     = '1.5.4';
    55. $C->DEBUG_USERS     = array();
    56. ?>
  6. 还没看到怎么调用控制器的,继续查代码 (page类里的_parse_input()方法貌似是处理url字符,做路由选择控制器的) (load_template()方法应该是调用视图的 )
  7. 预留
我是谁?
PHP中的stdclass类的使用
  • 文章目录
  • 站点概览
ken

ken

记录精彩的程序人生

498 日志
9 分类
77 标签
RSS
Creative Commons
Links
  • 酷壳
0%
© 2010 — 2025 ken
由 Halo 强力驱动
鄂ICP备18013899号-1