博客列表 >利用composer自动加载空间,类名,文件,公共函数与方法,数据库连接与数据表操作,psr-4,第3方包,框架及其项目,php数据库框架

利用composer自动加载空间,类名,文件,公共函数与方法,数据库连接与数据表操作,psr-4,第3方包,框架及其项目,php数据库框架

P粉479712293
P粉479712293原创
2022年12月14日 14:19:17806浏览

题目1:composer安装及生成vendor包与composer.json与autoload.php文件

浏览器效果图如下:

题目2:自动加载空间及类名及其项目下的文件

1.Demo1.php文件:

  1. <?php
  2. // *在空间及类下设置一个静态方法
  3. namespace hello;
  4. class Test1Class{
  5. public static function show(){
  6. return '方法名:'.__METHOD__;
  7. }
  8. }

2.Dem2.php文件:

  1. <?php
  2. // *同一文件夹及同一空间下设有另一个类,并也有一静态方法
  3. namespace hello;
  4. class Sanguo{
  5. public static function suguo(){
  6. return '我是'.'关云长';
  7. }
  8. }

3.Suihu.php文件

  1. <?php
  2. // *在项目下加一文件,并由其静态方法
  3. namespace _12c;
  4. class Lansanbo{
  5. public static function renwu(){
  6. return '我是'.'宋江';
  7. }
  8. }

4.test1.php文件

  1. <?php
  2. // *检验能否自动加载空间及类下的静态方法
  3. namespace _221212a;
  4. // *依赖
  5. require 'vendor/autoload.php';
  6. echo \hello\Test1Class::show();
  7. echo '<hr>';
  8. echo \hello\Sanguo::suguo();
  9. echo '<hr>';
  10. echo \_12c\Lansanbo::renwu();

5.浏览器效果图如下:

题目3:自动加载数据库连接及查询数据表

1.database.php文件:

  1. <?php
  2. // *数据库连接参数
  3. return[
  4. 'dsn'=>'mysql:dbname=phpedu1',
  5. 'username'=>'root',
  6. 'password'=>'root'
  7. ];

2.connect.php文件:

  1. <?php
  2. namespace _12c_2;
  3. use PDO;
  4. // *连接数据库
  5. class Db
  6. {
  7. private $db = null;
  8. public function __construct($dsn, $username, $password)
  9. {
  10. $this->db = new PDO($dsn, $username, $password);
  11. }
  12. // *测试方法
  13. public function select($sql)
  14. {
  15. return $this->db->query($sql)->fetchAll(PDO::FETCH_ASSOC);
  16. }
  17. }

3.test2.php文件:

  1. <?php
  2. // *检验自动加载数据库连接及查询数据表
  3. namespace _12c_2;
  4. // *依赖
  5. require 'vendor/autoload.php';
  6. // *提取关联数组并转成多个变量
  7. extract(require 'config/database.php');
  8. $db = new Db($dsn, $username, $password);
  9. // *转存此$db变量
  10. // var_dump($db);
  11. $users = $db->select('select * from user');
  12. foreach ($users as $user) {
  13. printf('<pre>%s</pre>', print_r($user, true));
  14. }

4.浏览器效果图如下:

题目4:自动加载公共函数与方法

1.helper.php文件:

  1. <?php
  2. namespace _12c_2;
  3. // *求和函数
  4. function sum(...$items){
  5. return array_sum($items);
  6. }

2.test3.php文件:

  1. <?php
  2. // *检验自动加载一个求和方法
  3. namespace _12c_2;
  4. // *依赖
  5. require 'vendor/autoload.php';
  6. echo sum(4,5,6,7,8);

3.浏览器效果图如下:

题目5:专用于类的自动加载(psr-4)及其条件:

1.index.php:

  1. <?php
  2. namespace phpcn;
  3. // *类名与文件名相互一致
  4. class index{
  5. public static function show()
  6. {
  7. $name='关云长';
  8. return '姓名: ' . $name;
  9. }
  10. }

2.logon.php:

  1. <?php
  2. // *psr-4的层级管理
  3. namespace phpcn\controller;
  4. // *类名要与文件名相互一致
  5. class login{
  6. public static function show(){
  7. $name='张飞';
  8. return '姓名:'.$name;
  9. }
  10. }

3.test4.php:

  1. <?php
  2. // *检验专用于类的自动加载(psr-4)
  3. namespace _12c_2;
  4. use phpcn\index;
  5. use phpcn\controller\login;
  6. // *依赖
  7. require 'vendor/autoload.php';
  8. echo Index::show(). '<br>';
  9. echo login::show().'<br>';

4.浏览器效果图:

题目6:自动加载第3方平台上的包

1.test5.php

  1. <?php
  2. require_once 'vendor/autoload.php';
  3. use Gregwar\Captcha\CaptchaBuilder;
  4. $captcha = new CaptchaBuilder();
  5. $captcha->build();
  6. ?>
  7. <!DOCTYPE html>
  8. <body>
  9. <html>
  10. <meta charset="utf-8" />
  11. </html>
  12. <body>
  13. <h1>Inline Captcha</h1>
  14. <img src="<?php echo $captcha->inline(); ?>"/><br/>
  15. Phrase: <?php echo $captcha->getPhrase(); ?>
  16. </body>
  17. </body>

2.浏览器效果图:

题目7:自动加载第3方框架及其项目

浏览器效果图:

题目8:自动加载轻量级php数据库框架及其查询示例

1.test6.php

  1. <?php
  2. namespace _12c_2;
  3. // *引入medoo
  4. use Medoo\Medoo;
  5. // *引入pdo
  6. use PDO;
  7. // *依赖自动加载
  8. require 'vendor/autoload.php';
  9. // *采用原生PDO连接数据库
  10. $opt = [
  11. 'type' => 'mysql',
  12. 'host' => 'localhost',
  13. 'database' => 'phpedu1',
  14. 'username' => 'root',
  15. 'password' => 'root'
  16. ];
  17. // *创建一个Medoo的实例
  18. $db = new Medoo($opt);
  19. // *原生pdo语句,创建一个预处理对象$stmt
  20. $stmt = $db->pdo->prepare('select * from staff limit ?');
  21. // *1表示第1个参数,3表示引入上面的?号中
  22. $stmt->bindValue(1, 3, PDO::PARAM_INT);
  23. // *执行
  24. $stmt->execute();
  25. print_r($stmt->fetchAll(PDO::FETCH_ASSOC));

2.浏览器效果图:

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