牛骨文教育服务平台(让学习变的简单)
博文笔记

框架入门 中级篇 (中)composer安装和使用 引入medoo数据库操作类

创建时间:2016-10-02 投稿人: 浏览次数:1443

我们的框架 已经拥有了 简易的MVC 以及简易的配置类和日志类
但是我们的框架还是太简易了
像错误处理 图片处理 邮件类 等等一些类库 我们都还没有写
可能有人会想 有没有一个好的办法可以把前辈们写好的一些类库 直接引入进来呢
这样不就避免了繁琐的写代码了吗

答案是有的
有一款类库管理工具 composer 他可以很轻松就帮我们下好并安装好我们所需要的类库 ,我们所需要的就是简单的配置一下就可以了
那么我们先来安装一下composer吧

windows 下安装composer
打开链接
https://getcomposer.org/Composer-Setup.exe
傻瓜式安装就可以了

安装好之后
我们要在我们的框架根目录 创建一个文件
composer.json

{
  "name":"IMOOC PHP",
  "description":"PHP Framework",
  "type":"Framework",
  "keywords":[
    "PHP","PHP Framework"
  ],
  "require":{
    "PHP":">= 5.3.0",
  }
}

以上声明了我们的项目名称 描述 类型 关键字 以及依赖

我们要引入别人的类库 可以在依赖里添加 要引入类库的名称

下面我们来引入一个错误提示类库 filp/whoops

在composer.json文件中require模块中添加一句

    "filp/whoops":"*"

冒号前面代表的是类库名称 后面是版本号
然后在根目录命令行运行

composer install 

耐心等待安装成功 这里需要补充一点
因为composer 的镜像默认都是国外的 下载速度可能非常慢

大家可以选择composer国内镜像

在composer.json 中添加下面这个模块

 "repositories": {
    "packagist": {
      "type": "composer",
      "url": "https://packagist.phpcomposer.com"
    }
  }

他声明了项目默认选择镜像是中国的镜像

下载完成后 所有的类库都会下载到 vendor 文件夹

我们需要在入口文件 加载vendor文件夹下的autoload文件


include "vendor/autoload.php";

然后在debug模式开启状态下 运行刚刚我们引入的错误类

if (DEBUG) {
    $whoops = new WhoopsRun;
    $whoops->pushHandler(new WhoopsHandlerPrettyPageHandler);
    $whoops->register();
    ini_set("display_error", "On");
}else{
    ini_set("display_error", "Off");
}

这样我们的错误提示就非常酷炫了 是不是很简单呢

接下来我们再引入一个打印第三方类 var-dumper

只需要添加

 "symfony/var-dumper":"*"

执行

composer update

ok 成功!

这样我们composer 管理第三方类就学习完成了

下面我们来利用composer 来安装一个medoo数据库框架

首先先添加一行

"catfan/medoo":"*"

然后执行

composer update

接下来我们修改一下以前写过的model基类

<?php

namespace corelib;

use corelibconf;

class model extends medoo
{
    public function __construct()
    {
        $conf = conf::all("database");
        parent::__construct($conf);
    }
}

数据库配置

<?php
return array(
    "database_type"=>"mysql",
    "database_name"=>"laravel",
    "server"=>"localhost",
    "username"=>"root",
    "password"=>"root",
    "charset"=>"utf8",
    "port" => 3306,
    "prefix" => ""
);

然后我们来试一下吧

在IndexController中我们实例化一个medoo

$medoo = new medoo();
$data = $medoo->select("news","*");

这样一个简单的查询就完成了 是不是很简单

如果要更复杂的操作 我们只需要去看看medoo给的文档就好了

http://medoo.lvtao.net/doc.php

medoo操作文档

这样我们的框架看起来是不是粗壮很多呢

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。