题目1:composer安装及生成vendor包与composer.json与autoload.php文件
浏览器效果图如下:
题目2:自动加载空间及类名及其项目下的文件
1.Demo1.php文件:
<?php
// *在空间及类下设置一个静态方法
namespace hello;
class Test1Class{
public static function show(){
return '方法名:'.__METHOD__;
}
}
2.Dem2.php文件:
<?php
// *同一文件夹及同一空间下设有另一个类,并也有一静态方法
namespace hello;
class Sanguo{
public static function suguo(){
return '我是'.'关云长';
}
}
3.Suihu.php文件
<?php
// *在项目下加一文件,并由其静态方法
namespace _12c;
class Lansanbo{
public static function renwu(){
return '我是'.'宋江';
}
}
4.test1.php文件
<?php
// *检验能否自动加载空间及类下的静态方法
namespace _221212a;
// *依赖
require 'vendor/autoload.php';
echo \hello\Test1Class::show();
echo '<hr>';
echo \hello\Sanguo::suguo();
echo '<hr>';
echo \_12c\Lansanbo::renwu();
5.浏览器效果图如下:
题目3:自动加载数据库连接及查询数据表
1.database.php文件:
<?php
// *数据库连接参数
return[
'dsn'=>'mysql:dbname=phpedu1',
'username'=>'root',
'password'=>'root'
];
2.connect.php文件:
<?php
namespace _12c_2;
use PDO;
// *连接数据库
class Db
{
private $db = null;
public function __construct($dsn, $username, $password)
{
$this->db = new PDO($dsn, $username, $password);
}
// *测试方法
public function select($sql)
{
return $this->db->query($sql)->fetchAll(PDO::FETCH_ASSOC);
}
}
3.test2.php文件:
<?php
// *检验自动加载数据库连接及查询数据表
namespace _12c_2;
// *依赖
require 'vendor/autoload.php';
// *提取关联数组并转成多个变量
extract(require 'config/database.php');
$db = new Db($dsn, $username, $password);
// *转存此$db变量
// var_dump($db);
$users = $db->select('select * from user');
foreach ($users as $user) {
printf('<pre>%s</pre>', print_r($user, true));
}
4.浏览器效果图如下:
题目4:自动加载公共函数与方法
1.helper.php文件:
<?php
namespace _12c_2;
// *求和函数
function sum(...$items){
return array_sum($items);
}
2.test3.php文件:
<?php
// *检验自动加载一个求和方法
namespace _12c_2;
// *依赖
require 'vendor/autoload.php';
echo sum(4,5,6,7,8);
3.浏览器效果图如下:
题目5:专用于类的自动加载(psr-4)及其条件:
1.index.php:
<?php
namespace phpcn;
// *类名与文件名相互一致
class index{
public static function show()
{
$name='关云长';
return '姓名: ' . $name;
}
}
2.logon.php:
<?php
// *psr-4的层级管理
namespace phpcn\controller;
// *类名要与文件名相互一致
class login{
public static function show(){
$name='张飞';
return '姓名:'.$name;
}
}
3.test4.php:
<?php
// *检验专用于类的自动加载(psr-4)
namespace _12c_2;
use phpcn\index;
use phpcn\controller\login;
// *依赖
require 'vendor/autoload.php';
echo Index::show(). '<br>';
echo login::show().'<br>';
4.浏览器效果图:
题目6:自动加载第3方平台上的包
1.test5.php
<?php
require_once 'vendor/autoload.php';
use Gregwar\Captcha\CaptchaBuilder;
$captcha = new CaptchaBuilder();
$captcha->build();
?>
<!DOCTYPE html>
<body>
<html>
<meta charset="utf-8" />
</html>
<body>
<h1>Inline Captcha</h1>
<img src="<?php echo $captcha->inline(); ?>"/><br/>
Phrase: <?php echo $captcha->getPhrase(); ?>
</body>
</body>
2.浏览器效果图:
题目7:自动加载第3方框架及其项目
浏览器效果图:
题目8:自动加载轻量级php数据库框架及其查询示例
1.test6.php
<?php
namespace _12c_2;
// *引入medoo
use Medoo\Medoo;
// *引入pdo
use PDO;
// *依赖自动加载
require 'vendor/autoload.php';
// *采用原生PDO连接数据库
$opt = [
'type' => 'mysql',
'host' => 'localhost',
'database' => 'phpedu1',
'username' => 'root',
'password' => 'root'
];
// *创建一个Medoo的实例
$db = new Medoo($opt);
// *原生pdo语句,创建一个预处理对象$stmt
$stmt = $db->pdo->prepare('select * from staff limit ?');
// *1表示第1个参数,3表示引入上面的?号中
$stmt->bindValue(1, 3, PDO::PARAM_INT);
// *执行
$stmt->execute();
print_r($stmt->fetchAll(PDO::FETCH_ASSOC));
2.浏览器效果图: