iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >12-Composer的配置与使用详解
  • 330
分享到

12-Composer的配置与使用详解

composerphp开发语言 2023-09-05 07:09:12 330人浏览 独家记忆
摘要

1、自定义类与非类的自动加载与测试 # composer> php 包管理工具 ,类似npm1.自己写的类,函数,接口,常量等全局成员,通过自动加载来实现按需加载2.自己写的代码,有哪些依赖,用到了哪些外部成员,我自己知道,可以自己管理3.

1、自定义类与非类的自动加载与测试

# composer> php 包管理工具 ,类似npm1.自己写的类,函数,接口,常量等全局成员,通过自动加载来实现按需加载2.自己写的代码,有哪些依赖,用到了哪些外部成员,我自己知道,可以自己管理3.如果第三方(别人写的),由包管理工具,实现自动加载以及包之间的依赖的处理4.php中用的是`composer`来实现这个功能,类似于Apple Store,手机应用的商店## 1.自动加载器1. `composer init`:交互式创建配置文件 `composer,json`2. 创建成功后,可以在`vendor/`下面有一个`autoload.php`的自动加载器## 2.自动加载我自己写的类> 我自己写的类,依赖关系我自己处理,能不能加载?可以,就用composer就可以> 这个类文件叫composer.json```json{ : {        "classmap":[            "inc/",            "MyClass.php"        ]    }}```每一步写完要执行`composer dumpautoload`使之注册并生效## 3.自动加载我自己写的其它文件> 注意:文件中的成员必须是全局的才可以自动加载和使用> 哪些是全局代码(要用空间访问的):类,接口,trait,函数,常量(变量不是,变量有作用域的)> 配置文件(例如连接数据库的文件):`config/connect.php`> 公共函数库:`lib/helper.php`## 4.PSR-4 自动加载功能### psr(php推荐标准)-41.专用于**类**的自动加载2.`类空间`与`类路径`存在映射关系3.`类名`与`类文件`同名4.支持`空间分级`(顶层空间/子空间/自动查询)管理> 命名空间与类路径名称不一定相同> 类泛指类:class/interface/trait> 注意:对象的模板是类,类的模板是接口## 5.加载第三方的包(只有这个是必须用composer)> 第三方包(也属于全局成员)的依赖关系,由 composer 进行处理1.composer.JSON:`"require":{...}`,`composer install`2.新建终端输入`composer require 包名`,会自动更新 composer.json3.都会自动创建`composer.lock`定当前版本4.`composer create-project topthink/think blog`:通过包来创建完整项目## 6.总结1.自动加载2.依赖管理

2、composer的使用

 2-1 首先进入当前命名空间,然后使用composer指令

 如此可证明composer安装成功

2-2 使用 composer selfupdate可以对composer版本进行升级 

 

2-3 升级后通过 composer -v  查看composer版本

2-4 对于composer来说,有个非常重要的文件,就是它的配置文件 (composer.json)

该文件包含了项目的依赖和其它的一些元数据

3、composer.json 

如果手动创建了composer.json文件,则使用composer install,代表安装在composer.json中声明的第三方类库,且手动创建的composer.json必须包含有效的json格式{}

或者,直接使用命令composer init,初始化一个配置文件。 

我自己写的类或其它文件:"autoload":{

        "claSSMap":[],

        "files":[],

        "psr-4":{}

第三方的类:"require":{}

classmap:

把类的映射关系声明到classmap中,当我加载或调用一个我当前还没有加载的类的时候,我用classmap告诉项目,从哪里找这个类。写完以后还需使用指令composer dumpautoload 使对应的autoload_classmap.PHP完成注册(在array里) 

"classmap":[    "inc/",    "MyClass.php"],

在class可以直接引用文件名,这样相当于文件名下的所有类都被加载进来。

也可以只引用某个文件。 

files:

把非类文件的映射关系声明到files中,当我加载或调用一个我当前还没有加载的非类文件的时候,我用files告诉项目,从哪里找这个文件。写完以后还需使用指令composer dumpautoload 使对应的autoload_files.php完成注册(在array里) 

"files":[    "config/connect.php",    "lib/helper.php"],

4、autoload.php 

系统自动给我们写好的配置文件(相当于自己写的自动加载器)

5、 database.php

连接数据库的参数配置

'mysql:dbname=phpedu',    'username'=>'root',    'password'=>'root'];

6、connect.php

连接文件,用于实现数据库的连接 

db = new PDO($dsn,$username,$password);    }    //测试方法    public function select($sql){        return $this->db->query($sql)->fetchAll(PDO::FETCH_ASSOC);    }}

7、 使用Db类

 'mysql:dbname=phpedu',//     'username' => 'root',//     'password' => 'root'// ]);extract(require 'config/database.php');$db = new Db($dsn, $username, $password);$users = $db->select('select * from user');foreach($users as $user){    printf('
%s
',print_r($user,true));}var_dump($db);echo sum(3,4,5,6);

8、任意数量数据求和

ion sum(...$items){    //也可以用 array_reduce()    return array_sum($items);}

9、psr-4

php推荐标准,只能用于类的自动加载,并且要求类空间与类路径存在映射关系, 这一点和手写的自动加载器很像(如果一个类,它的命名空间和路径存在映射关系就可以写一个自动加载器,我们只需要解析一下类的命名空间解析出来里面的内容作为路径,这样就可以把这个类给加载过来了)。

并且类名一定要和类文件名相同。

因为反斜线是转义符,所以必须敲两次 

"psr-4": {    "phpcn\\":"admin/"}

 

 在命令行使用composer dumpautoload完成对psr4的注册

10、psr-4的(命名)空间分级管理

 在admin文件夹下,新建一个文件夹controller,在controller下再新建文件login.php

 然后需要在配置文件中对phpcn\controller空间和Login类的映射进行注册,但是,由于之前我们已经把phpcn作为一个顶层的命名空间路径给注册到admin下面了,那么在admin文件夹下面所有的类文件以及

10、 第三方包与依赖管理

自己写的类或者其它文件可以自己写一个自动加载器而不一定非要用到composer,但是由于第三方包都会遵循composer标准,所以必须要用composer自动加载器,而且很容易进行一些依赖管理。

 

 第一种方法是在composer.json里面的require对象里写入我们要引入的第三方包。

    "require": {        "gregwar/captcha":"1.1.*",    }

*代表最新版本 

 最后在终端使用命令composer install把这个包安装到当前项目

 

 第二种方法是直接在命令终端输入指令直接安装。

这两种方法都会自动创建composer.lock锁定当前版本 

 11、验证并使用第三方包

inline指在页面中怎么用,只需要实例化该类然后在需要的位置引用就行了

build();?>                            

Inline Captcha

https://blog.csdn.net/q506174602/article/details/inline(); ?>"/>
Phrase: Https://blog.csdn.net/q506174602/article/details/getPhrase(); ?>

 遇到了一个bug:从 float  到 int 的隐式转换会丢失精度

 

需将$x和$y强制转成int型即可 

  

  12、使用composer基于包创建一个项目

在终端使用命令composer create-project topthink/think blog创建项目,最后的blog是给这个项目文件夹的命名,如果没有blog这个参数,那么这个文件名则为think(即包名)。注意,这里用的不是require指令,而是create-project指令

 

 打开这个项目blog可以发现,当前这个项目是一个完整的框架项目,这里面它有自己的composer.json(配置器),有自己的一个包目录(vendor),框架的源码在vender里面有一个topthink

 13、medoo(加速开发的轻量级PHP数据库框架)

在终端使用composer require catfan/medoo指令进行安装

 

 'mysql','host' => 'localhost','database' => 'phpedu','username' => 'root','password' => 'root',];$db =  new Medoo($opt);//查询// $staffs = $db->select('staff','*');// print_r($staffs);//查询(原生PDO操作)// '?'处不能直接传3,因为会当字符串处理,需要做一个绑定$stmt = $db->pdo->prepare('select * from staff limit ?');$stmt->bindValue(1,3,PDO::PARAM_INT);$stmt->execute();printf("
%s
",print_r($stmt->fetchAll(PDO::FETCH_ASSOC),true));

上述运行结果: 

 

Array(    [0] => Array        (            [id] => 1            [name] => admin            [sex] => 1            [email] => admin@php.cn        )    [1] => Array        (            [id] => 2            [name] => 杨过            [sex] => 1            [email] => yangguo@qq.com        )    [2] => Array        (            [id] => 3            [name] => 小龙女            [sex] => 0            [email] => xiaolongnv@qq.com        ))

来源地址:https://blog.csdn.net/q506174602/article/details/129053289

--结束END--

本文标题: 12-Composer的配置与使用详解

本文链接: https://www.lsjlt.com/news/394924.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 12-Composer的配置与使用详解
    1、自定义类与非类的自动加载与测试 # composer> php 包管理工具 ,类似npm1.自己写的类,函数,接口,常量等全局成员,通过自动加载来实现按需加载2.自己写的代码,有哪些依赖,用到了哪些外部成员,我自己知道,可以自己管理3....
    99+
    2023-09-05
    composer php 开发语言
  • 一文详解Spring AOP的配置与使用
    目录1.关于AOP2.初步使用AOP环境配置3.使用原生Spring API接口实现AOP4.使用自定义类实现AOP5.使用注解实现AOP1.关于AOP 面向切面编程(俗称AOP)提...
    99+
    2022-11-13
    Spring AOP配置 Spring AOP使用 Spring AOP
  • Nginx配置使用详解
    配置步骤: 1、配置nginx的方法:首先要打开“/etc/nginx/conf.d/”文件夹; 2、然后创建配置文件;接着在“/etc/ngi...
    99+
    2024-04-02
  • SpringMVC配置与使用详细介绍
    目录一、SpringMVC的使用1、MVC模式2、具体的坐标如下3、配置DispatcheServlet4、编写springmvc.xml的配置文件二、SpringMVC原理1、Sp...
    99+
    2024-04-02
  • Android中的OpenGL使用配置详解
    目录引言介绍GLSurfaceViewEGL配置渲染setDebugFlags和setGLWrapper渲染器Renderer坐标映射绘制三角形绘制效果引言 PS:虽然感觉好久没更...
    99+
    2023-02-28
    Android OpenGL配置 Android OpenGL
  • Composer安装与PHPWord的下载与使用
    PHP之PHPWord安装与使用——Composer安装PHPWord 关于Composer,菜鸟里有简单的介绍与使用说明——Composer 安装与使用 Composer是PHP 的一个依赖管理工具...
    99+
    2023-09-17
    composer php
  • mysql mha高可用配置与详解
    三台mysql网段配置为10.0.0.51 10.0.0.52 10.0.0.53安装mysql1.2.1安装包准备#创建安装包存放目录[root@mysql-db01 ~]# mkdir /home/cc...
    99+
    2024-04-02
  • SpringBoot详解配置文件的用途与用法
    目录1. SpringBoot 配置文件1.1 配置文件的作用1.2 配置文件的格式1.3 properties 配置文件说明1.3.1 properties 基本语法1.3.2 读...
    99+
    2024-04-02
  • Github Copilot的申请以及在Pycharm的配置与使用详解
    目录前言1.简介2.copilot首页3.copilot的申请4.GitHub Copilot 官方使用文档5.PyChram下载地址6.Pychram下载 GitHub Copil...
    99+
    2024-04-02
  • Linux DNS 解析与配置 nslookup使用 与 /etc/resolv.conf文件的配置
    Linux DNS 解析与配置 序 当我接收到一批新的服务器时,尝试连接外网,比如访问百度的首页: curl www.baidu.com 发现报错,不能解析正确的主机名。这个其实就是主机在解析主机名时没能正确发现对应的主机的 ip。当...
    99+
    2023-12-25
    linux 服务器 运维
  • Springboot自动配置与@Configuration配置类详解
    目录@Configuration注意点1注意点2注意点3注意点4springboot自动配置@Configuration 注意点1 配置类(@Configuration下的这个类)其...
    99+
    2024-04-02
  • Log4j的配置与使用
    本篇内容主要讲解“Log4j的配置与使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Log4j的配置与使用”吧!Log4j简介第1章. Log4j 的优点Log4j是Apache的一个开放源代...
    99+
    2023-06-03
  • 详解:Flannel安装与配置
    Flannel是 CoreOS 团队针对 Kubernetes 设计的一个覆盖网络(Overlay Network)工具,其目的在于帮助每一个使用 Kuberentes 的 CoreOS 主机拥有一个完整的子网。简介...
    99+
    2023-06-05
  • Nginx安装与配置详解
    Nginx负载均衡集群 一、Nginx简介1、nginx介绍2、反向代理2.1 什么是代理服务器?2.2 为什么要使用代理服务器?2.3 反向代理 VS 正向代理 3、负载均衡3.1 什么是负载均衡? 二、Nginx...
    99+
    2023-08-21
    nginx 服务器 运维
  • SpringCloud Bus组件的使用配置详解
    目录什么是Bus搭建RabbitMQ服务实现自动配置刷新指定服务刷新配置集成webhook实现自动刷新什么是Bus 0.解释 https://spring.io/projects/s...
    99+
    2024-04-02
  • 详解Spring配置及事务的使用
    目录 1.事务概念什么是事务?事务的四个特性(ACID):2.事务操作(模拟事务操作环境)3.事务管理(Spring事务管理)4.事务操作(注解声明式事务管理)在 spri...
    99+
    2024-04-02
  • 详解log4j.properties的简单配置和使用
    本文介绍了详解log4j.properties的简单配置和使用,分享给大家,具体如下:简单log4j.properties配置示例### set log levels ### log4j.rootLogger = INFO , consol...
    99+
    2023-05-30
    log4j.properties 配置
  • ModelAndView 配置与使用
    ModelAndView是一个Spring MVC中的对象,它将模型数据和视图信息封装在一起。在配置和使用ModelAndView时...
    99+
    2023-09-21
    ModelAndView
  • Springboot@Configuration与自动配置详解
    不知道大家第一次搭SpringBoot环境的时候,有没有觉得非常简单。无须各种的配置文件,无须各种繁杂的pom坐标,一个main方法,就能run起来了。与其他框架整合也贼方便,使用E...
    99+
    2024-04-02
  • nginx之keepalive详解与其配置
    文章目录 一、keepalive理解什么是keepalive如何确定请求头和响应体的长度?是否可使用长连接的条件是什么?keepalive时Nginx的等待时长是多少?keepalive的优势...
    99+
    2023-09-03
    nginx 网络 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作