asanusi007 / ci4-smarty
Integrate smarty template engine to CodeIgniter 4 with easy way.
Installs: 31
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/asanusi007/ci4-smarty
Requires
- php: >=8.0
- codeigniter4/framework: ^4.5
- smarty/smarty: ^5.4
Requires (Dev)
- codeigniter4/devkit: ^1.0
README
Simple way to integrate Smarty template engine into Codeigniter 4
Installation
Use the package manager composer to install Smarty.
composer require asanusi007/ci4-smarty
Usage
Open BaseController.php inside app/Controllers/BaseController.php and add this code
use Asanusi007\Smarty\Traits\Viewable; /** * Class BaseController * * BaseController provides a convenient place for loading components * and performing functions that are needed by all your controllers. * Extend this class in any new controllers: * class Home extends BaseController * * For security be sure to declare any new methods as protected or private. */ abstract class BaseController extends Controller { use Viewable; .... }
And then, you can use it like this:
class Home extends BaseController { public function index() { $data['title'] = 'Home'; return $this->parse('home', $data); } }
Configuration
You can change the default configuration by copy a file named smarty.php in the Src/Config/ folder to app/Config/Smarty.php, then you can change the configuration as you want.
<?php declare(strict_types=1); namespace App\Config; use CodeIgniter\Config\BaseConfig; class Smarty extends BaseConfig { // Smarty caching enabled by default unless explicitly set to FALSE public $cache_status = false; // Cache lifetime. Default value is 3600 seconds (1 hour) Smarty's default value public $cache_lifetime = -1; // Where templates are compiled public $compile_directory = WRITEPATH . 'cache/smarty/compiled/'; // Where templates are cached public $cache_directory = WRITEPATH . 'cache/smarty/cached/'; // Where Smarty configs are located public $config_directory = APPPATH . 'third_party/Smarty/configs/'; // Where Smarty views are located public $template_directory = [ APPPATH . 'Views/', APPPATH . 'Views/admin/', APPPATH . 'Views/website/', ]; // Default extension of templates if one isn't supplied public $template_ext = 'tpl'; // Error reporting level to use while processing templates public $template_error_reporting = E_ALL & ~E_NOTICE; // Debug mode turned on or off (TRUE / FALSE) public $smarty_debug = false; public $smarty_modifiers = []; }
Template Folder
By default, the template folder is app/Views/ and the template file extension is .tpl.
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
for futher information, you can visit Smarty Documentation