作为新手通过入门, 快速应用ecos框架,分步骤的搭建实用的项目, 通过图画和充足信息给予频繁迅速的成就感,下面通过以下的介绍了解系统的基本知识和技巧。

第一步、获取ECOS的基础源码,自行下载

第二步、配置php环境变量,并创建数据库(这里以本地环境配置)

1.就是把php安装路径放到path里面,如下图所示:

blob.png

第三步、在app目录下新建一个app/notebook,包含文件及文件夹并且编辑app.xml文件如下如所示:

blob.png

新建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安装notebookapp

直接在自己安装ecos的文件夹中app下面cmd进入cmd.exe命令窗口

blob.png

再输入 ad base进入base(这里为什么不直接cmd base文件夹这是因为basecmd文件有干扰进不去)

blob.png

现在我们在命令提示符输入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" />&nbsp;</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],查看效果。