CodeIgniter Forums
Autoload Librari and Helper in codeigniter4 - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: CodeIgniter 4 (https://forum.codeigniter.com/forumdisplay.php?fid=28)
+--- Forum: CodeIgniter 4 Support (https://forum.codeigniter.com/forumdisplay.php?fid=30)
+--- Thread: Autoload Librari and Helper in codeigniter4 (/showthread.php?tid=74265)



Autoload Librari and Helper in codeigniter4 - chau - 09-03-2019

please help me how to make autoload in codeigniter4 for example loading url, form_validation, session, database, and others in the Autoload.php / Codeigniter4 file



RE: Autoload Librari and Helper in codeigniter4 - ciadmin - 09-03-2019

https://codeigniter4.github.io/userguide/extending/basecontroller.html


RE: Autoload Librari and Helper in codeigniter4 - InsiteFX - 09-04-2019

The url helper is already loaded by default in CodeIgniter 4 no reason to load it again.


RE: Autoload Librari and Helper in codeigniter4 - chau - 09-07-2019

thank you for helping me


RE: Autoload Librari and Helper in codeigniter4 - PetrusPetrorum - 05-06-2021

I have this function in Common.php. So, it wraps the view in the main viwe, also checks if is any present in the helpers array and load depending on the helpers that I send in $data. Like this:

function renderView(string $view, array $data = [], array $options = []): mixed
{
$ionAuth = new \IonAuth\Libraries\IonAuth();
$Images = new \App\Models\Images();

extract($data);

$avatar = $Images->where('type','user')->where('external_id',$ionAuth->user()->row()->id)->orderBy('main','desc')->find();

$avatar = ($avatar!==[]) ? imageUrl('user',$avatar[0]['name']) : null;

if(!empty($helpers))
{
foreach($helpers as $helper)
{
helper($helper);
}
}

return view('dashboard',[
'title' => esc($title),
'subtitle' => isset($subtitle) ? esc($subtitle) : null,
'bodycontent' => view($view,$data),
'user' => esc($ionAuth->user()->row()),
'isadmin' => esc($ionAuth->isAdmin()),
'active' => isset($active) ? esc($active) : null,
'activecontroller' => isset($activecontroller) ? esc($activecontroller) : null,
'breadcrumbs' => esc($breadcrumbs),
'avatar' => $avatar,
]);
}

And I call it like:

return renderView('purchases/purchaseedit', [
'title' => lang('purchase.core.title'),
'bodycontent' => lang('purchase.core.contacts'),
'boxtitle' => lang('purchase.core.create'),
'boxfooter' => sprintf(lang('providers.core.lines'), $this->pageLen),
'active' => 'purchase',
'activecontroller' => 'purchase',

'details' => $details,
'purchase' => $purchase,
'provider' => $provider,
'products' => $this->Providers->getArticlesOfProvider($provider['id']),

'paginate' => $this->Purchases->paginate($this->pageLen),
'count' => $this->Purchases->countFindAll(),
'pagelen' => $this->pageLen,
'pager' => $this->Providers->pager,
'Time' => new Time(),
'locale' => $this->request->getLocale(),
'provArts' => $this->Providers,
'errors' => $errors ?? null,
'helpers' => ['form'],

'breadcrumbs' => [
[
'url' => base_url(),
'text' => lang('app.dashboard'),
'icon' => lang('app.icons.dashboard'),
'active' => false,
],
[
'url' => base_url('purchases'),
'text' => lang('purchase.core.title'),
'icon' => lang('purchase.core.icon'),
'active' => false,
],
[
'url' => '',
'text' => lang('purchase.core.create'),
'icon' => lang('purchase.core.icon-plus'),
'active' => true,
]
]
]);