php中composer如何实现类的自动加载(示例讲解)
内容导读
收集整理的这篇技术教程文章主要介绍了php中composer如何实现类的自动加载(示例讲解),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2229字,纯文字阅读大概需要4分钟。
内容图文
本篇文章给大家带来的内容是关于php中composer如何实现类的自动加载(示例讲解),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。我们在开发项目中会经常用到第三方的类库插件,但是如果每次需要使用的时候都会在代码的某一处去引入,然后在实例化,这样做感觉很不方便,那么怎么实现自动加载呢,下面简单介绍使用composer实现自动加载:
1、首先需要安装composer
安装地址(中国镜像): https://pkg.phpcomposer.com/#how-to-install-composer
根据它的说明一步一步进行安装
2、安装好composer以后创建一个工作目录,eg:work
3、在项目目录根目录下建立一个composer.json文件,格式如下:(注意必须为空的json格式文件)
{}
4.打开命令行控制台cmd,进入工作目录work,运行composer命令:
composer install
5.运行后会生成composer文件目录:
- Vendor - composer - autoload_classmap.php - autoload_namespaces.php - autoload_psr4.php - autoload_real.php - autoload_static.php ClassLoader.php installed.json LICENSE - autoload.php- composer.json
6.打开composer.json文件:
共有四种方式:
PSR-0(不推荐使用);
PSR-4;
Class-map;
Files;
下面演示PSR-4实现自动加载:
"autoload": { "psr-4": { "src\": "src/" }}
代码中"命名空间"(不知道命名空间的话,最好先去搜索查一下)习惯为"目录名/文件名"
7.新建src目录,在目录下创建IndexController.php,php文件内容如下:
//设置命名空间namespace src;class IndexController{ public function index() { echo 'indexController'; }}
8.使用刚创建的IndexController类:
在work根目录创建index.php:
//引入vendor下的autoloas.phprequire 'vendor/autoload.php';//实例化对象$index = new src\IndexController();//调用类中的方法$index->index();
运行后会出现报错:
class IndexController not fund
打开控制台,进入到work文件目录,运行composer命令:
composer dump-autoload
在运行work下的index.php,不报错误信息说明已经成功实现自动加载了。
9.在work下的index.php文件中我们实例化IndexController类的时,格式为"new src\IndexController();";
如果命名空间较长的情况下,看起来不太方便,那我们可以用"use"来引入关键字,修改index.php代码如下:
use srcIndexController;//引入vendor下的autoloas.phprequire 'vendor/autoload.php';//修改后的实例化$index = new IndexController();//调用类中的方法$index->index();
在运行index.php结果和上面一样。
**注意:**在配置完composer.json以后一定要运行"composer dump-autoload"不然会出现class not fund;
以上就是php中composer如何实现类的自动加载(示例讲解)的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是为您收集整理的php中composer如何实现类的自动加载(示例讲解)全部内容,希望文章能够帮你解决php中composer如何实现类的自动加载(示例讲解)所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。