【问题标题】:The blade template engine can be used with codeigniter?刀片模板引擎可以与codeigniter一起使用吗?
【发布时间】:2021-09-21 01:46:19
【问题描述】:

名为blade的模板引擎可以用codeigniter还是纯php?我知道它可以与 laravel 一起使用,我想知道是否也可以与任何其他 php 框架或纯 php 一起使用

【问题讨论】:

标签: php codeigniter laravel blade


【解决方案1】:

Blade 可以在 PHP 中单独使用。

这意味着您可以在 CodeIgniter 中轻松使用它。

https://github.com/PhiloNL/Laravel-Blade

再一次,你需要composer

【讨论】:

    【解决方案2】:

    或者,您可以使用此 CodeIgniter 库来模拟 Blade:CodeIgniter Slice-Libray

    它的工作原理很像 Blade,它是直接为 CodeIgniter 设计的!

    【讨论】:

      【解决方案3】:

      记录在案并作为对另一个帖子的回答:

      我测试了许多库以在 Laravel 之外运行刀片(我不使用),并且大多数(在所有编码人员方面)都是原始库的糟糕黑客,只是简单地复制和粘贴代码并删除了一些依赖项 它保留了很多 Laravel 的依赖。

      我为刀片创建了一个替代方案,它的免费(MIT 许可证,即封闭源代码/私有代码是可以的)在一个单个文件中并且没有外部库的单个依赖项。您可以下载该类并开始使用它,或者您可以通过 composes 安装(composer 需要 eftec/bladeone)。所以即使作曲家也是可选的。

      https://github.com/EFTEC/BladeOne

      https://packagist.org/packages/eftec/bladeone

      它 100% 兼容,没有 Laravel 自己的功能(扩展)。

      【讨论】:

        【解决方案4】:

        您可以将 BladeView 库用于 CI。 注意:我移植了这个库

        class Welcome extends CI_Controller {
          public function __construct() {
            parent::__construct();
            $this->load->library("bladeview");
          }
        
         public function renderView(){
            $data=array(
                    "name"=>"Jhon",
                    "age"=>21
                );
            $this->bladeview->render("test", $data);
         }
        
         public function renderString(){
            $data=array(
                    "name"=>"Jhon",
                    "age"=>21
                );
            $string="Hello I'm \{{$name}}. My age is \{{$age}}";
            $this->bladeview->render($string, $data,false);
          }
        }
        

        然后在 view.blade.php 中你可以像在 laravel Blade 中一样渲染。

        Hello my name is {{$name}}. My Age is {{$age}}.
        

        输出:

        Hello my name is Jhon. My Age is 21.
        

        【讨论】:

        【解决方案5】:

        我在这里写了完整的文章:http://mstd.eu/index.php/2017/03/02/using-the-laravel-blade-templating-engine-in-codeigniter-3/

        基本上,使用 composer 包含包(您需要设置 CI 以使用 composer),然后创建一个刀片实例,将其传递给您的视图和缓存文件夹,如下所示:

        $blade = new BladeInstance(__DIR__ . "/../views", __DIR__ . "/../cache/views");
        
        echo $blade->render("index");
        

        【讨论】:

          猜你喜欢
          • 2016-10-02
          • 2018-07-07
          • 1970-01-01
          • 2014-02-07
          • 2015-08-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-25
          相关资源
          最近更新 更多