个人技术博客
团队开发个人技术博客(α)
031502216 江郑
使用的编辑器:
VSCode
和Sublime
背景概要
我们团队要开发一个福州大学校内二手交易平台,包括一个app的客户端和web的后台管理系统,团队总共8人,3个人使用php搭建服务器数据库等后台环境,5个人完成使用java进行app的开发。
应用框架的简要介绍与开发的个人任务
基于php的后台环境搭建,经过我们小组3个后台组的讨论决定,采用php的CI框架【CodeIgniter框架】。先简要介绍一下这个框架:
CodeIgniter 是一个简单快速的PHP MVC框架。EllisLab 的工作人员发布了 CodeIgniter。许多企业尝试体验过所有 PHP MVC 框架之后,CodeIgniter 都成为赢家,主要是由于它为组织提供了足够的自由支持,允许开发人员更迅速地工作。
CodeIgniter 是一套给 PHP 网站开发者使用的应用程序开发框架和工具包。它提供一套丰富的标准库以及简单的接口和逻辑结构,其目的是使开发人员更快速地进行项目开发。使用 CodeIgniter可以减少代码的编写量,并将你的精力投入到项目的创造性开发上。
CodeIgniter是由Ellislab公司的CEORickEllis开发的。其核心框架是为这个程序特别编写的,而其他很多类库、辅助函数和子系统则来自于RickEllis和PaulBurdick编写的内容管理系统ExpressionEngine。来自RubyonRails的灵感启发我们创造了一个PHP框架,并且将框架的概念引入到网络社区的一般意识中。
—— 百度百科
文件结构:
- application:具体项目开发目录;
- system:CI框架代码;
- user_guide:用户手册,和实现无关,删掉也不影响
- index.php: 唯一的入口文件,除了这个文件外其他php文件都不能直接执行。
application目录:
- controllers:控制器
- models:模块
- views:展示
system目录:
- core:框架核心代码,仔细看index.php入口文件最后一行就是执行core/CodeIgniter.php文件,主要是required一些核心文件。
- database:数据库操作的封装,包括mysql、odbc、sqlite等。
- helper目录:封装了一些常用方法,如date、email、string等。
- libraries:封装的一些类库:ftp、Encrypt等
个人的任务与队友的交接
本次的任务是用CI框架实现对商品需求的数据库的增删改查以及在开发后期完成网页版的后台管理系统。
数据库的操作在大二的时候已经有学习过,不过在CI框架中进行了封装,用起来会更加方便,会节省不少时间下面列举我在开发中学习用到的数据库的增删改查的语句:
增
//insert
//语法:$bool=$this->db->insert('表名',关联数组);
$data=array(
'username'=>'mary',
'password'=>'mary',//建立一个用户名叫mary,密码为mary的数组,并传递给变量$data
);
$bool=$this->db->insert('user',$data);//将$data插入数据库的user表中
var_dump($bool);//成功则返回TURE
删
//delete
//语法:$bool=$this->db->delete('表名',WHERE条件);
$bool=$this->db->delete('user',array('id'=>3));//删除数据库.user表里id=3的用户所有信息
var_dump($bool);//成功则返回TURE
改
//update
$data=array(
'password'=>12345,
);
$bool=$this->db->update('user',$data,array('id'=>3));//将数据库.user表里id=3的用户密码给为12345
var_dump($bool);//成功则返回TURE
查
//get
$res=$list=$this->db->get('user');
//var_dump($list);
foreach($res->result() as $item){//利用foreach来列出所有用户名
echo $item->username;
echo '<br />';
}
更多具体的操作在CI官网的api文档介绍:
在数据库的增删改查的操作之前,还需要对数据进行验证。
举例验证规则如下:
$this->form_validation->set_rules('title', '标题', 'required|max_length[10]');
$this->form_validation->set_rules('content', '内容', 'required|max_length[150]');
最后再贴一个和队友交流会在我实现功能中用的技术代码--上传图片
function add_goods_image($gid)
{
$this->load->library('upload');
foreach($_FILES as $key=>$val)
{
//组合$config
$config['upload_path'] = './public/goods_photo/';
$config['allowed_types'] = 'gif|jpg|png';
$config['file_name'] = $this->sno.time();
$config['max_size'] = 2048;
$config['max_width'] = 1024;
$config['max_height'] = 768;
$this->upload->initialize($config);
if (! $this->upload->do_upload($key))
{
$message = "图片上传错误!";
$error_code = "40103";
echo_failure($message,$error_code);
return;
}
else
{
$data['gid'] = $gid;
$info = $this->upload->data();
$data['path'] = $info['full_path'];
$gimage_id = $this->Goods_model->add_goods_image($data);
if($gimage_id == false)
{
return false;
}
//echo $data['path'];
//print_r($info);
}
}
return true;
}
小结
以上就是本次任务需要的掌握的部分知识,其他的功能会在用到之后再在下一次技术博客呈现出来,另外关于开发后期会进行网页的编写,这部分之前自己已经有所掌握,个人感觉问题并不是太大,最主要的就是从后台调用数据然后呈现出来,遇到问题也会自己想着去怎么解决,这样才能得到一定的锻炼,真正从软工实践中学到东西。