Composer常用命令
composer.json
文件:描述了当前项目所依赖的包/组件/类库和版本。
1、交互式创建composer.json文件命令: composer init
。
- 创建composer.json的步骤:
- 在当前项目所在目录下执行:
composer init
命令。
STT | 英文 | 解释 | 实例 |
---|---|---|---|
1 | Package name |
包或组件的名称 | php/dashu :string/string |
2 | Descriptio |
包或组件的描述 | php vn veb |
3 | Author |
作者 + <邮箱> | dashu 1815810057@qq.com |
4 | Minimum Stability |
其它附加信息 | 可以为空 |
5 | Package Type |
包或组件的类型 | library… |
6 | License |
协议 | MIT :免费 |
7 | Minimum Stability |
其它附加信息 | 可以为空 |
- Would you like to define your dependencies (require) interactively [yes]?
是否安装一些依赖?no
Would you like to define your dev dependencies (require-dev) interactively [yes]?
是否要开发者依赖?no
弹出上述我们填写或选择的信息
Do you confirm generation [yes]?
- 确认信息。yes
2、composer install
- 如果存在
composer.lock
,就安装这里面要求的包的版本 - 否则就安装
composer.json
中的包,并创建composer.lock
,将安装好的包的版本等信息写入到composer.lock
中
3、composer update
- 主要是检查
composer.json
是否有更新 - 如果有,就安装这个包,并将这个包的相关信息写入到
composer.lock
4、composer require
- 如果不存在
composer.json
,composer.locl
,vendor
的时候, 会全自动创建
5、create-project 创建项目
composer create-project laravel/laravel blogs
6、composer dump-autoload
- 将
composer.json
中的”autoload”中的空间映射生效 - 命令简写:
composer dump
7、其它命令
STT | 命令 | 描述 |
---|---|---|
1 | composer -V | 查看 composer 版本 |
2 | composer selfupdate | 更新 composer 版本 |
3 | composer show | 查看 composer.json 包依赖配置文件中的某一个配置的信息 |
4 | composer show + 包名称 | 查看项目的详细的信息 |
5 | composer create-project + ‘项目名’ | 创建项目 |
简易MVC框架源码
model代码使用
composer组件medoo
——> viewl代码使用composer组件plates
——>控制器代码自己写
框架目录截图
model关键代码
// 使用medoo组件之前先给它套一个公共父类,然后用StaffsModel继承公共父类
<?php
namespace core;
// 公共模型
use Medoo\Medoo;
class Model extends Medoo
{
//构造方法
public function __construct()
{
$options = [
'database_type' => 'mysql',
'database_name' => 'phpedu',
'server' => 'localhost',
'username' => 'root',
'password' => 'root',
];
parent::__construct($options);
}
public function init()
{
}
}
<?php
namespace models;
use core\Model;
class StaffsModel extends Model
{
public function index()
{
return 'YES';
}
public function __construct()
{
parent::__construct();
}
}
view关键代码
<?php
namespace core;
// 公共视图
use League\Plates\Engine;
class View extends Engine
{
private $templates;
public function __construct($path)
{
$this->templates = parent::__construct($path);
}
}
控制器关键代码
<?php
// 命名空间
namespace controllers;
class StaffsController
{
public $model;
public $view;
public function __construct($model, $view)
{
$this->model = $model;
$this->view = $view;
}
public function index()
{
return 'Hello php dashu';
}
public function display()
{
include 'app/views/staffs/list.php';
}
// 查询
public function select()
{
$staffs = $this->model->select('staffs',['id', 'msnv', 'name', 'donvi', 'congviec', 'luongthuc'],
['id[>=]'=>1, 'LIMIT'=>10]);
return $this->view->render('staffs/list', ['staffs' => $staffs]);
}
// 此处提醒没有select和render方法,调用的时候传参数后就没问题了
}
入口文件关键代码
<?php
require 'vendor/autoload.php';
use controllers\StaffsController;
use models\StaffsModel;
use core\View;
// 模型处理
$model = new StaffsModel();
// 视图
$view = new View('app/views');
// 查询
$controller = new StaffsController($model, $view);
echo $controller->select();
运行效果图
总结
- 总而言之,MVC框架也就是类与对象的知识,理清楚各个类之间的关系,每个方法与类的对应关系之后,理解起来就不是那么难了。