博客列表 >安装composer,练习一下mvc的实现原理—2019年10月31日

安装composer,练习一下mvc的实现原理—2019年10月31日

L先生的博客
L先生的博客原创
2019年11月03日 14:59:41635浏览

安装composer

        网址:https://www.phpcomposer.com

        是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。(中国镜像网站)

安装composer:

首页:下载->Composer-Setup.exe->安装(勾选developer mode开发者模式;选择安装目录;选择本地的php版本phpstudy_pro\Extensions\php\php7.3.4nts\php.exe;选择php7.0+最好最新,一直next即可)。dos窗口:composer -v 即可查看composer的版本。

下载laravel

首页:安装包列表->search packages->输入laravel->选择laravel/laravel,复制下载代码:composer create-project laravel/laravel->dos进入以下想要下载到位置的文件夹位置,输入以上代码->等待下载。

(composer create-project laravel/laravel mylaravel(重命名) 5.8.*(下载最新版本))。

源设置为中国区镜像或阿里云镜像

修改 composer 的全局配置文件(推荐方式)

打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行如下命令:
composer config -g repo.packagist composer https://packagist.phpcomposer.com        中国区镜像

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/       阿里云镜像  

解除镜像的方法:

如果需要解除镜像并恢复到 packagist 官方源,请执行以下命令:
composer config -g --unset repos.packagist

执行之后,composer 会利用默认值(也就是官方源)重置源地址。
将来如果还需要使用镜像的话,只需要根据前面的“镜像用法”中介绍的方法再次设置镜像地址即可。


简单练习mvc的实现原理

新建一个mvc.cn的站点;

在根目录下新建:controller,model,view文件夹。还有index.php

view中新建welcome.php,内容如下:

<!DOCTYPE html>
<html dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <p>这是view下的welcome.php文件</p>
    <span>时间:</span>
    <?php echo date('Y-m-d H:i:s'); ?>
  </body>
</html>

controller中新建Home.php,内容如下:

<?php
class Home{
  public function index(){
    echo 'hello MVC';       //直接显示hello MVC
  }
  public function welcome(){
    require_once __DIR__.'/../view/welcome.php';        //引入view下的视图
  }
}

编辑根目录下的index.php文件,内容如下:

<?php
// 路由解析
$server = $_SERVER;    //php预定义的超全局变量:保存关于报头、路径和脚本位置的信息
$path_info = $_SERVER['PATH_INFO'];    // 结果:  /home/index
exit($path_info);
$path = ltrim($path_info,'/');  //结果: home/index  //函数移除字符串左侧的空白字符或其他预定义字符
$controller_method = explode('/',$path);    //函数把字符串分割为数组
$controller_method[0] = ucfirst($controller_method[0]);   //将第一个字母大写
$controller = $controller_method[0];    //控制器名
$method = $controller_method[1];     //方法名
//控制器名为Home,方法为index
require_once __DIR__.'/controller/'.$controller.'.php';   //导入控制器的php
$obj = new $controller();
$obj->$method();
exit();

访问http://mvc.cn/index.php/home/welcome

就会显示:

这是view下的welcome.php文件

时间:    2019-11-02 14:40:07 

访问http://mvc.cn/index.php/home/index

就会显示:

hello MVC

将index.php修改为如下:

<?php
// 路由解析
$server = $_SERVER;    //php预定义的超全局变量:保存关于报头、路径和脚本位置的信息
// echo '<pre>';
// print_r($server);
$request_uri = $_SERVER['REQUEST_URI'];   //结果:  /home/index
$path = ltrim($request_uri,'/');
// 解析Controller和method
$controller_method = explode('/',$path);    //函数把字符串分割为数组
$controller_method[0] = ucfirst($controller_method[0]);   //将第一个字母大写
$controller = $controller_method[0];    //控制器名
$method = $controller_method[1];     //方法名
//控制器名为Home,方法为index
require_once __DIR__.'/controller/'.$controller.'.php';   //导入控制器的php
$obj = new $controller();
$obj->$method();
exit();

并且添加.htaccess文件到首页。

访问时即可去掉index.php

总结

简单mvc,访问地址:mvc.cn/home/index时,home为控制器名Home中的home类,index为home类中的index方法。

index方法可以引入view下的视图。而模型和数据库相关。


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议