专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »PHP教程 » php入门:PHP大型Web应用入门( 3) »正文

php入门:PHP大型Web应用入门( 3)

来源: 发布时间:星期一, 2009年1月12日 浏览:12次 评论:0
  下面部分是对系统的前部分可能和普通没什么两样但是下面这我保证你没见过

<?php
// Init
require('../../s/kernel/config.inc.php');
  
// First Startup? Init the tmpfs
(!is_dir ($data_root) || !is_dir ($s_root)) {
   (!is_writable ($tmpfs_root))
    die ('TMPFS FAILED!!!');
  
  require_once('../../s/kernel/pkg.inc.' . $phpEx);
  @mkdir ($data_root);
  @mkdir ($s_root);
  
  $pkg = BsmPkg ;
  $pkg->target_dir = $data_root;
  $pkg->filename = $tmpfs_pkg_data_filename;
  $pkg->unpack_o_dir ;
  
  $pkg->target_dir = $s_root;
  $pkg->filename = $tmpfs_pkg_s_filename;
  $pkg->unpack_o_dir ;
}
?>


  包含个config.inc.php看起来很正常它里面有些有关系统设置参数(这个文件后面会有)然后它会检查$data_root和$s_root目录是否存在并检查$tmpfs_root目录是否可写这里$data_root和$s_root按照规定是属于$tmpfs_root级目录而$tmpfs_root是整个系统使用tmpfs根路径它负责保存我们系统临时数据其中$s_root用来保存那些需要被执行体包含文件$data_root用来存放Cache、模板编译结果等数据文件

  tmpfs是Linux里种特殊分区格式区别于ext3等tmpfs创建于内存和交换区上Linux有个默认shm就是tmpfs类型通常mount在/dev/shm上tmpfs和ramfs有些相似区别是它会用到交换区

  tmpfs最大好处是IO速度毕竟纯粹物理磁盘操作效率无法和内存相比而且tmpfs使用起来也很方便它基本不需要做什么其它设置就可以像普通物理硬盘样使用它对来说是透明

  tmpfs使用思路方法和Linux挂载其它类型分区格式可以用mount命令来挂载也可以在fstab中设置

  * * * * * *

  当系统检测到$tmpfs_root确实存在且可写而$data_root和$_root不存在表示这是系统第次在运行它会用内置个压缩/解压文件个类来把事先准备好data和s压缩文件解压到$tmpfs_root中这个类处理格式是我自创它保持了源目录结构并保存了文件属性它也会对每个文件做文件长度和MD5校验这个类位于/s/kernel/pkg.inc.php

  这里提及个细节我学习了PHPBB中$phpEx概念整个系统中除了common.inc.php和config.inc.php外其它php文件地方都没有写“.php”扩展名而是用了个$phpEx变量代替这个变量值在config文件中可以修改这样做好处是我们随时可以把系统中php改换扩展名比如我们修改了Apache配置让php解释器来解释种叫做.hello文件就可以方便地把整个系统所有被php扩展名改成.hello再把config中$phpEx值改成“hello”这样你系统看起来就像是使用种没人见过Hello语言编写哈哈……

  s这个压缩文件中包含了/s目录中所有内容它被解压到$tmpfs_root(我系统中是/opt/tmp/)中这样在/opt/tmp/s中就有我们想要所有文件了它比直接/s要快很多

  下面部分就是已经解压好文件

<?php
// Include Kernel file
require($s_root . 'db/' . $global_db_dbms . '.' . $phpEx);
require($s_root . 'kernel/constants.inc.' . $phpEx);
require($s_root . 'kernel/template.inc.' . $phpEx);
require($s_root . 'kernel/session.inc.' . $phpEx);
require($s_root . 'kernel/cache.inc.' . $phpEx);
require($s_root . 'kernel/log.inc.' . $phpEx);
require($s_root . 'kernel/shm.inc.' . $phpEx);
  
require($s_root . 'function/basic.function.' . $phpEx);
require($s_root . 'function/file.function.' . $phpEx);
?>
接着创建个通用数据库连接$db属性也都在config.inc.php中设置

<?php
// Init the DB Connection
$db = $sql_db;
  
// Connect to DB
$db->sql_connect($global_db_host, $global_db_user, $global_db_pass, $global_db_name, $global_db_port, false);
?>
创建成功后记得把密码清空

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: