国产InitPHP框架系列 - InitPHP框架搭建高可用WEB应用01:创建项目

原创 2013年12月15日 15:23:30

InitPHP框架是一款轻量级PHP开源框架,框架文档和下载地址:http://initphp.com


创建Hello World项目

1. 下载框架

选择最新的版本,进行下载。框架下载地址:http://initphp


2. 创建项目目录

创建项目目录,目录示意图:

1. 文件夹initphp是最新下载的initphp框架文件夹

2. conf/comm.conf.php 放置项目配置文件

3. web/controller/ 文件夹放置控制器文件

4. index.php是项目入口文件

说明:使用initphp开发的项目是单入口,所有请求都会通过index.php进行分发。


3. index.php入口文件

index.php代码示例

<?php
define('APP_PATH', dirname(__FILE__)); //这个参数必须配置,是项目文件目录
header("Content-Type:text/html; charset=utf-8"); //编码
require_once(APP_PATH . '/initphp/initphp.php'); //导入框架
require_once(APP_PATH . '/conf/comm.conf.php'); //公用配置
InitPHP::init(); //框架初始化

入口文件非常简单,定义一个APP_PATH变量,然后导入框架initphp.php文件,最后调用框架中的InitPHP::init()就能运行框架了。


4. 配置文件comm.conf.php

comm.conf.php配置文件已经在index.php入口文件中导入。如果我们没有自己配置conf.php文件,则框架会自动使用框架中自带的一个默认的配置文件initphp.conf.php

我们自定义的配置可以拷贝initphp.conf.php里面的配置信息。里面的配置信息非常多,可以根据需要进行筛选。

由于我们第一个教程只需要使用Hello World,所以配置如下:

<?php
/*********************************************************************************
 * InitPHP 3.2.2 国产PHP开发框架  
 *-------------------------------------------------------------------------------
 * 版权所有: CopyRight By initphp.com
 * 您可以自由使用该源码,但是在使用过程中,请保留作者信息。尊重他人劳动成果就是尊重自己
 *-------------------------------------------------------------------------------
 * $Author:zhuli
 * $Dtime:2012-11-27
***********************************************************************************/
/* 框架全局配置常量 */ 
define('INITPHP_PATH', dirname(__FILE__)); 
define('IS_INITPHP', 1);
error_reporting(E_ERROR | E_PARSE); 
/* 框架全局配置变量 */
$InitPHP_conf = array();
/*********************************基础配置*****************************************/
/**
 * 站点URL配置
 * 必选参数
 */
$InitPHP_conf['url'] = 'http://127.0.0.1/test/';  
/**
 * 是否开启调试
 */
$InitPHP_conf['is_debug'] = true; //开启-正式上线请关闭
/**
 * 路由访问方式
 * 1. 如果为true 则开启path访问方式,否则关闭
 * 2. default:index.php?m=user&c=index&a=run
 * 3. rewrite:/user/index/run/?id=100
 * 4. path: /user/index/run/id/100
 * 5. html: user-index-run.htm?uid=100
 * 6. 开启PATH需要开启APACHE的rewrite模块,详细使用会在文档中体现
 */
$InitPHP_conf['isuri'] = 'default'; 
/*********************************Controller配置*****************************************/
/**
 * Controller控制器配置参数
 * 1. 你可以配置控制器默认的文件夹,默认的后缀,Action默认后缀,默认执行的Action和Controller
 * 2. 一般情况下,你可以不需要修改该配置参数
 * 3. $InitPHP_conf['ismodule']参数,当你的项目比较大的时候,可以选用module方式,
 * 开启module后,你的URL种需要带m的参数,原始:index.php?c=index&a=run, 加module:
 * index.php?m=user&c=index&a=run , module就是$InitPHP_conf['controller']['path']目录下的
 * 一个文件夹名称,请用小写文件夹名称
 */
$InitPHP_conf['ismodule'] = false; //开启module方式
$InitPHP_conf['controller']['path']                  = 'web/controller/'; //控制器存放的文件夹目录
$InitPHP_conf['controller']['controller_postfix']    = 'Controller'; //控制器文件后缀名
$InitPHP_conf['controller']['action_postfix']        = ''; //Action函数名称后缀
$InitPHP_conf['controller']['default_controller']    = 'index'; //默认执行的控制器名称
$InitPHP_conf['controller']['default_action']        = 'run'; //默认执行的Action函数
$InitPHP_conf['controller']['module_list']           = array('test', 'index'); //module白名单
$InitPHP_conf['controller']['default_module']        = 'index'; //默认执行module
$InitPHP_conf['controller']['default_before_action'] = 'before'; //默认前置的ACTION名称
$InitPHP_conf['controller']['default_after_action']  = 'after'; //默认后置ACTION名称

我们主要配置$InitPHP_conf['url']和controller相关的配置参数。


5. indexController.php 控制器文件

<?php
/**
 * 入口Controller
 * @author zhuli
 *
 */
class indexController extends Controller {
	
	/**
	 * 入口
	 */
	public function run() {
		echo "HELLO WORLD";
	}
}

index.php入口文件需要继承Controller基类,Controller是InitPHP中定义的一个类。

需要定义一个run方法,这个run方法是一个默认的Action方法。这个方法名称可以在配置中定义名称。


6. 完成项目搭建,运行

这个时候我们访问http://127.0.0.1/test/,浏览器中就会输出HelloWorld

我们也可以通过参数的方式访问:http://127.0.0.1/test/index.php?c=index&a=run访问。参数c代表对应的Controller名称,run代表Controller中的可访问的Action方法名称。


入口文件和APP分离项目

1. 项目目录结构


2. 为何这样做?

1. 入口文件和app项目文件分离,首先可以更加安全。在配置apache或Nginx虚拟机的时候,只要www目录指到test/www目录下面就可以了,对外层来说,用户无法通过URL访问到app文件夹下的文件。

2. 可以实现多入口。通过多入口,可以方便实现不同入口进入不同的项目模块。

3. 让二级域名实现更加简单。


3. 这种部署和上面的部署有啥区别?

入口文件分离部署的方式只需修改入口文件index.php即可。下面是index.php

<?php
define('APP_PATH', "../app/"); //这个参数必须配置,是项目文件目录
header("Content-Type:text/html; charset=utf-8"); //编码
require_once(APP_PATH . '/library/initphp/initphp.php'); //导入框架
require_once(APP_PATH . '/conf/comm.conf.php'); //公用配置
InitPHP::init(); //框架初始化

后面的介绍,都会使用这个项目的部署方式。




版权声明:本文为博主原创文章,未经博主允许不得转载。

国产InitPHP框架系列 - InitPHP框架搭建高可用WEB应用03:模板View使用

InitPHP框架是一款轻量级PHP开源框架,框架文档和下载地址:http://initphp.com 模板基本使用 1. 模板配置 我们继续之前几篇文章的代码设计。这一节主要讲如何来使用Ini...
  • initphp
  • initphp
  • 2013年12月29日 14:25
  • 6049

国产InitPHP框架系列 - InitPHP框架搭建高可用WEB应用05:数据层Dao使用

InitPHP框架是一款轻量级PHP开源框架,框架文档和下载地址:http://initphp.com Dao层说明 Dao层通俗的讲就是数据层。再简单的讲,Dao层主要是用于写sql语句的。可能...
  • initphp
  • initphp
  • 2014年11月29日 09:39
  • 4821

国产InitPHP框架系列 - InitPHP框架搭建高可用WEB应用02:深入控制器应用

InitPHP框架是一款轻量级PHP开源框架,框架文档和下载地址:http://initphp.com 控制器Controller基本使用 1. 配置参数 我们在上一节的时候,已经看到过配置信...
  • initphp
  • initphp
  • 2013年12月15日 17:23
  • 5466

国产InitPHP框架系列 - InitPHP3.8 发布

InitPHP框架已经不知不觉写了三年了。发现今年自己也是蛮拼的,发了四次版本,框架也是越来越完善了。 做PHP框架的门槛其实不高,但是要去想透里面的每一个细节还是需要花很多心思的。 最近两年虽然一直...
  • initphp
  • initphp
  • 2014年11月25日 16:55
  • 5040

InitPHP框架Hook机制解读

wordpress受到大部分人的追捧是因为它有一个强大的挂件机制,这个机制可以让全世界各地不同的开发者参与进来,并且不影响原有核心程序代码。 今天来分析下,initphp框架中对hook的处理: ...

initphp框架

  • 2013年06月18日 10:29
  • 445KB
  • 下载

Web应用——驾培管理系统之框架搭建

前言:        本次项目写一个驾驶员培训管理系统的web后端,前端App端由其他人完成。本次项目暂时没有用到struts2+mybatis+spring3框架,只是用最基础的页面交互获取数...

Web应用——驾培管理系统之框架搭建(作者:小圣)

Web应用——驾培管理系统之框架搭建 前言:本次项目笔者写一个驾驶员培训管理系统的web后端,前端App端由其他人完成。本次项目暂时没有用到struts2+mybatis+spring3框架,...

InitPHP轻量级开源框架

  • 2012年05月19日 20:50
  • 380KB
  • 下载

InitPHP开源框架load函数分析

InitPHP开源框架整个框架都是一个巨大的类库,通过一个load函数,实现了框架与外界框架运行和应用程序使用框架接口的通道。   $this->load() 函数存放在core/core.ini...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:国产InitPHP框架系列 - InitPHP框架搭建高可用WEB应用01:创建项目
举报原因:
原因补充:

(最多只允许输入30个字)