laravel中用什么代替require_once?

laravel中用什么代替require_once?

比如安装和使用htmlpurifier:
https://github.com/ezyang/htm...

一、用composer安装:

$ composer require "ezyang/htmlpurifier":"dev-master"

二、使用:

<?php
    require_once '/path/to/htmlpurifier/library/HTMLPurifier.auto.php';

    $config = HTMLPurifier_Config::createDefault();
    $purifier = new HTMLPurifier($config);
    $clean_html = $purifier->purify($dirty_html);
?>

问题:
在laravel中使用,用什么代替上面的require_once

阅读 9.1k
5 个回答

首先,建议你 先了解以下 ComposerPHP-FIG的自动加载(AutoLoader)

其次,用了Composer基本不用自己在require,因为Composer已经帮你做过了,拿你这个这个例子,我们看你这个包定义的composer.json

"autoload": {
    "psr-0": { "HTMLPurifier": "library/" },
    "files": ["library/HTMLPurifier.composer.php"]
}

就是说,你可以直接按照psr-0的规范使用这个类库。

所以在laravel中你可以直接使用, 比如

<?php
namespace App;

use HTMLPurifier;
use HTMLPurifier_Config;

$config = HTMLPurifier_Config::createDefault();
$purifier = new HTMLPurifier($config);
$dirty_html = '<h1>Hello</h1><script>alert("123");</scipt>';
$clean_html = $purifier->purify($dirty_html);
var_dump($clean_html);

首先要明确的一点是,require_onceorinclude_onceorrequireorrequire_once是类文件被载入的根本,是必须要使用的,像一些自动加载函数spl_autoload_register(他的第一个参数是一个callback或者一个类的方法),当你new一个对象或者使用该对象的静态方法时会调用spl_autoload_register的函数,从而达到引入类文件的目的,这个只是帮助我们更方便的调用类,避免了我们在每次需要一个类的时候都需要写一次require_once
当你去看代码里如何使用spl_autoload_register时,你会发现,他也会执行一个require的引入,也就是说,当我们要使用一个类时,这个自动加载函数会根据我们预定义的类名来找到对应目录下的类文件。
所以,require_once是必须要的,只不过我们有更方便的方式来帮助我们加载类文件而已。

直接在最顶部用 use

命名空间啊!要什么引入,那个过时了
踩我做什么,你选中的答案就是命名空间方式啊,我们又没说错,php的引入现在全用命名空间了!谁还用其他的!用其他的都是过时货色

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题