Ya, Anda dapat menggunakan komposer untuk menginstal modul/proyek khusus Laravel, proyek pihak ketiga di CodeIginter Anda. Cukup sertakan autoload
dalam file `index.php' Anda di atas
// Composer autoload
require_once __DIR__.'/vendor/autoload.php';
Saya menggunakan Eloquent
sebagai ORM di basis kode CodeIgniter saya.
Buat peta kelas ke direktori aplikasi Anda di composer.json
"autoload": {
"psr-4": { "YourApp\\": ["application/"] },
Gunakan Fasih
Untuk menggunakan Eloquent
, Anda perlu membuat perpustakaan untuk menyiapkan Eloquent untuk digunakan.
/**
* Capsule setting manager for Illuminate/database
*/
use Illuminate\Database\Capsule\Manager as CapsuleManager;
use Illuminate\Events\Dispatcher;
use Illuminate\Container\Container;
class Capsule extends CapsuleManager {
public function __construct()
{
parent::__construct();
//Loaded by CI
if(function_exists('get_instance')) {
$ci = &get_instance();
$db = new stdClass;
$db = $ci->db;
} else {
require_once __DIR__.'/../config/database.php';
$db = (object) $db['default'];
}
$this->addConnection(array(
'driver' => $db->dbdriver,
'host' => $db->hostname,
'database' => $db->database,
'username' => $db->username,
'password' => $db->password,
'charset' => $db->char_set,
'collation' => $db->dbcollat,
'prefix' => $db->dbprefix,
));
$this->setEventDispatcher(new Dispatcher(new Container));
// Make this Capsule instance available globally via static methods... (optional)
$this->setAsGlobal();
// Setup the Eloquent ORM... (optional; unless you've used setEventDispatcher())
$this->bootEloquent();
}
}
// END Capsule Class
Sekarang muat perpustakaan secara otomatis, dan Anda akan mendapatkan keindahan yang fasih.
Demikian pula, Anda dapat menggunakan MonoLog
untuk logging, Whoops
untuk tampilan kesalahan, Formers\Former
untuk pembuatan formulir, dll.
Gunakan Ups
Anda dapat menempatkan kode ini di suatu tempat setelah autload
dan mendefinisikan Lingkungan CI di index.php
Anda untuk menggunakan https://github.com/filp/whoops perpustakaan
if (ENVIRONMENT == 'development') {
$whoops = new \Whoops\Run;
$whoops->pushHandler(new Whoops\Handler\PrettyPageHandler());
$whoops->register();
}
Anda juga dapat memperluas CI_Router
untuk menggunakan perutean gaya Laravel di aplikasi Code Igniter Anda.
Templat Pisau
Anda dapat memperluas CI_Loader
untuk menggunakan template Blade
di Code Igniter. Buat file baru MY_Loader
di direktori application/core
Anda dengan kode ini.
use Illuminate\Blade\Environment;
use Illuminate\Blade\Loader;
use Illuminate\Blade\View;
class MY_Loader extends CI_Loader {
public function __construct()
{
parent::__construct();
}
public function blade($view, array $parameters = array())
{
$CI =& get_instance();
$CI->config->load('blade', true);
return new View(
new Environment(Loader::make(
$CI->config->item('views_path', 'blade'),
$CI->config->item('cache_path', 'blade')
)),
$view, $parameters
);
}
}
Anda mungkin harus membuat file konfigurasi blade.php
di direktori application/config
Anda untuk menyimpan blade
konfigurasi tertentu.
//config/blade.php
$config['views_path'] = APPPATH . 'views/blade/';
$config['cache_path'] = APPPATH . 'cache/blade/';
Sekarang Anda dapat melakukan hal seperti ini di pengontrol Anda
class Home extends CI_Controller {
public function index()
{
// Prepare some test data for our views
$array = explode('-', date('d-m-Y'));
list($d, $m, $y) = $array;
// Basic view with no data
echo $this->load->blade('home.index');
// Passing a single value
echo $this->load->blade('home.index')->with('day', $d);
// Multiple values with method chaining
echo $this->load->blade('home.index')
->with('day', $d)
->with('month', $m)
->with('year', $y);
// Passing an array
echo $this->load->blade('home.index', array(
'day' => $d,
'month' => $m,
'year' => $y
));
}
}
person
Ehs4n
schedule
17.01.2016