Correcting teacher:PHPz
Correction status:qualified
Teacher's comments:
作业标题:命名空间与mysql入门
作业内容:1. 总结mysql 常用DDL, DML语言并实操; 2.use在命名空间中的作用,如何实现自动加载带有命名空间的类?
use 引入别的命名空间到当前空间 as 为引过来的命名空间起别名
2.use 引入别的命名空间中的类到当前空间 as 为引过来的命名空间的类起别名
主程序
<?php
namespace app;
require 'app/admin/autoload.php';
// 起别名
use app\admin\controller\Login;
use app\admin\controller\User;
use app\admin\model\Login as LoginModel;
use app\admin\model\User as UserModel;
$loginController = new Login;
$loginModel = new LoginModel;
$UserModel = new UserModel;
$userController = new User;
echo $userController->index();
自动加载程序
<?php
spl_autoload_register(function($className){
// 先检查要加载的类
// echo $className.'<hr>';
// 将类的命名空间与类文件所在的路径保持一一映射
$file = str_replace('\\',DIRECTORY_SEPARATOR,$className).'.php';
// echo $file;
if(!(is_file($file) && file_exists($file)))
{
throw new \Exception('文件名不合法或者不存在');
}
require $file;
//require $className.'.php';
});
目录结构
app\admin\controller
Login.php代码
<?
namespace app\admin\controller;
class Login
{
}
app\admin\controller
User.php代码
<?php
namespace app\admin\controller;
use app\admin\model\User as UserModel;
class User
{
public function index()
{
$res = UserModel::getInfo();
return $res;
}
}
app\admin\model
Login.php代码
<?php
namespace app\admin\model;
class Login
{
}
app\admin\model
User.php代码
<?php
namespace app\admin\model;
class User
{
static function getInfo()
{
return '获取到用户信息';
}
}