在框架中想要让操作变得简洁,对于命令的熟练调用是必不可少的。说到自定义的命令,那么tojs无疑是非常好的选择。同时对于js语言的切换上也是速度非常快的。下面我们就laravel框架中tojs这种自定义的命令带来详细的介绍,大家也快来看看实际的使用中都会遇到哪些流程吧。
1、创建ToJsServiceProvider
namespace AppProviders; use AppHelpersToJsToJs; use IlluminateSupportFacadesBlade; use IlluminateSupportServiceProvider; class ToJsServiceProvider extends ServiceProvider { public function boot() { // } public function register() { $this->app->singleton('tojs', function () { return new ToJs(); }); Blade::directive('tojs', function () { return ''; }); } }
2、ToJs方法主要是对数组的一些操作
namespace AppHelpersToJs; use IlluminateSupportArr; class ToJs { protected $data = []; public function put(array $data) { foreach ($data as $key => $value) { $this->data[$key] = value($value); } return $this; } public function get($key = null, $default = null) { if (!$key) return $this->data; return Arr::get($this->data, $key, $default); } public function forget($keys) { Arr::forget($this->data, $keys); return $this; } }
3、声明facade
namespace AppHelpersToJsFacades; use IlluminateSupportFacadesFacade; class ToJsFacade extends Facade { protected static function getFacadeAccessor() { return 'tojs'; } }
4、在config数组添加serviceProvider
providers 添加
AppProvidersToJsServiceProvider::class
aliases 添加
'ToJs' => AppHelpersToJsFacadesToJsFacade::class,
5、为了方便调用可以在写一个helper方法
if (!function_exists('to_js')) { function to_js($key = null, $default = null) { if (is_null($key)) { return app('tojs'); } if (is_array($key)) { return app('tojs')->put($key); } return app('tojs')->get($key, $default); } }
在PHP代码需要的地方调用 to_js(['username'=>'test']);
blade模板直接通过 @tojs 就可以在页面渲染出。
以上就是php之laravel中的自定义模板命令,相信大家已经初步学会了tojs命令的调用,如果想要了解更多的命令,也可以在课后自行查询资料。