作为新手通过入门, 快速应用ecos框架,分步骤的搭建实用的项目, 通过图画和充足信息给予频繁迅速的成就感,下面通过以下的介绍了解系统的基本知识和技巧。
第一步、获取ECOS的基础源码,自行下载
第二步、配置php环境变量,并创建数据库(这里以本地环境配置)
1.就是把php安装路径放到path里面,如下图所示:
第三步、在app目录下新建一个app/notebook,包含文件及文件夹并且编辑app.xml文件如下如所示:
新建app描述文件app/notebook/app.xml,内容如下:
<app> <name>留言本</name> <description>Pluggable Authentication Modules</description> <author> <name>shopex开发团队</name> <email>dev@shopex.cn</email> <url>http://www.shopex.cn</url> </author> <version>0.1</version> <license>shopex license</license> <depends> <app>base</app> </depends> </app>
第四步、cmd安装notebook(app)
直接在自己安装ecos的文件夹中app下面cmd进入cmd.exe命令窗口
再输入 ad base进入base(这里为什么不直接cmd base文件夹这是因为base有cmd文件有干扰进不去)
现在我们在命令提示符输入install notebook自动安装notebook:
notebook > app/base/cmd install notebook 1. 数据库主机 localhost 2. 数据库用户名 root 3. 数据库密码 (empty) 4. 数据库名 5. 数据库表前缀 sdb_ 6. 默认时区 (北京时间) 北京、重庆、香港、新加坡 ________________________________________ 输入项目编号,或输入井号"#"确认:
输入4回车,选择一个要安装的数据库。
输入项目编号,或输入井号"#"确认: 4 选择合适的数据库名: 1. information_schema 2. mysql 3. notebook 输入合适的数据库名编号:
我们选择名为notebook的数据库,这里输入3
1. 数据库主机 localhost 2. 数据库用户名 root 3. 数据库密码 (empty) 4. 数据库名 notebook 5. 数据库表前缀 sdb_ 6. 默认时区 (北京时间) 北京、重庆、香港、新加坡 ________________________________________ 输入项目编号,或输入井号"#"确认: #
第五步、取消缓存
缓存已经成为评价一个框架优劣的重要评审标准之一, 它可以提供系统速度, 但在开发过程中. 缓存会令人感到头痛, 因此在我们开始我们的项目前, 先把缓存关掉
修改ecos系统配置文件 config/config.php将:
define('WITHOUT_CACHE',false);
替换为:
define('WITHOUT_CACHE',true);
第六步,编辑数据表dbschema文件,并update进行安装
添加数据库描述文件: app/notebook/dbschema/item.php
<?php
$db['item']=array (
'columns' =>
array (
'item_id' => array (
'type' => 'number',
'required' => true,
'extra' => 'auto_increment',
'pkey' => true
),
'item_subject' => array ( 'type' => 'varchar(100)' ),
'item_content' => array ( 'type' => 'text' ),
'item_posttime' => array ( 'type' => 'time' ),
'item_email' => array ( 'type' => 'email'),
),
);
数据库文件写好后,执行update命令即可自动创建数据库。
app/base/cmd update Updating base_application_dbtable@notebook. CREATE TABLE `sdb_notebook_item` ( `item_id` mediumint(8) unsigned not null auto_increment, `item_subject` varchar(100), `item_content` text, `item_posttime` int(10) unsigned, `item_email` varchar(255), primary key (item_id) )ENGINE = MyISAM DEFAULT CHARACTER SET utf8; Updating base_application_cache_expires@notebook. Installing Cache_Expires DB:SDB_NOTEBOOK_ITEM UPDATE CACHE EXPIRES KV DATA Applications database and services is up-to-date, ok.
第七步、编写php和html模板
控制器文件:app/notebook/controller/default.php
<?php
class notebook_ctl_default extends base_controller{
public function index(){
$this->pagedata['items'] = $this->app->model('item')->getList('*');
$this->display('default.html');
}
public function addnew(){
$this->begin(array("ctl" => "default", "act" => "index"));
$data = array(
'item_subject'=>$_POST['subject'],
'item_content'=>$_POST['content'],
'item_email'=>$_POST['email'],
'item_posttime'=>time(),
);
$result = $this->app->model('item')->insert($data);
$this->end($result);
}
}
编写视图文件:app/notebook/view/default.html 为了简化实现,此处用了webkit 浏览器的私有属性。
<html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Notebook</title> <link rel="stylesheet" type="text/css" href="<{$env.app.res_url}>/style.css" media="screen" /> </head> <body> <h1>Notebook</h1> <dl> <{foreach from=$items item=item}> <dt> <{$item.item_subject}> <span class="date">日期: <{$item.item_posttime|cdate}></span> </dt> <dd><{$item.item_content}></dd> <{/foreach}> <div style="margin-bottom:20px;clear:both" /> </div> </dl> <form id="writer" method="post" action="<{link ctl='default' act='addnew' app='notebook'}>"> <input id="writer-subject" type="text" value="" name="subject" placeholder="请输入留言的标题" /> <input id="writer-email" type="text" value="" name="email" placeholder="请输入邮箱地址" /> <textarea name="content" placeholder="留言正文"></textarea> <input type="submit" value="发布新留言" id="writer-submit" /> </form> </body> </html>
我们写个简单的样式:app/notebook/statics/style.css
html{background:#A4C5FF} body{width:380px;margin:auto;background:#fff;padding:20px} dd{padding:10px} dt{border-bottom:1px solid #ccc;margin:10px 0; font-weight:bold;color:#42597B;font-size:20px;} #writer{background:#E8EEF7;padding:10px;border:1px solid #E1ECFE} #writer-email,#writer-subject{display:block;margin-bottom:10px;width:300px} #writer textarea{width:300px;margin-bottom:10px;display:block;height:80px} #writer-submit{padding:2px 18px;font-weight:bold;} h1{text-align:center;padding:20px;text-shadow: 2px 2px 2px #999;}
第八步、配置路由,查看效果
修改config/mapper.php,增加如下代码:'/front'=> array('app'=>'notebook'),用浏览器访问[http://localhost/项目名称/index.php/front],查看效果。