如何插入 Laravel
How to plug into Laravel
我可以开发 Laravel 包并且可以从包中定制 blade、迁移、模型、控制器、路由。但我的问题具体是关于如何从一个包中插入一个已经构建的默认 CRUD 来修改它。
我的 PHP 职业生涯始于 WordPress、Drupal 等 CMS,然后是 CakePHP、Laravel。从过程编码开始,OOP 是一个学习曲线,对我来说仍然是一个学习曲线。但是搜索不同的平台让我明白,同样的事情可以用不同的方式来实现。
凭借 WordPress 插件开发经验,可以轻松使用操作和过滤器挂钩扩展功能。具有如下核心功能:
Fetch form data (3 fields)
hook here <---
Load form data (3 fields)
Submit form data (3 fields)
hook here <---
Save form data (3 fields)
可以通过以下插件轻松修改:
Fetch form data (3 fields)
action hook <--- (hooked - added 2 fields)
Load form data (5 fields)
Submit form data (5 fields)
filter hook <--- (hooked - added data of 2 additional fields)
Save form data (5 fields)
但是在 Laravel 中,我想在 Laravel 范围内实现类似的功能,我该怎么做?
我了解 @yield('my_hook')
的使用类似于 WordPress 中的操作挂钩。但是发现,如果我将多个挂钩到 @yield
上,它就会被覆盖。
我发现了几个像 eventy 这样的软件包,它们具有与 WordPress 类似的操作方法和过滤器挂钩,但实际上我要求的是 Laravel 方法来解决这个问题。
我遇到了 Laravel Events,这是像 WordPress 中的动作挂钩一样挂钩的解决方案吗?还有过滤器钩子,我认为我们可以扩展模型来修改它的行为。但恐怕,这些都是想象,未必就是现实。我对此一无所知。
我能得到一些关于这个问题的启示吗?
WordPress 和 Laravel 都是完全不同级别的框架,因此比较起来可能很困难。
在 Laravel 中,您有控制输出的工具(html 页面)。 @yield
是一个示例,当您使用 Blade 模板时。
此外,还有一些方法可以挂钩框架执行过程中的某些事件(Laravel 个事件)。
在 Laravel 中,您在模型-视图-控制设置中工作,这意味着您 can/should:
- 为您正在使用的每个数据实体制作一个模型,并赋予它完成自己工作的责任。另见 https://laravel.com/docs/5.8/eloquent#events 钩子
- 为您希望从前端执行的每个操作创建控制器方法。最好使这些方法尽可能短。例如最多 10 行。
- 使用 Blade 模板引擎制作复杂的模板
希望这会有所帮助。
我可以开发 Laravel 包并且可以从包中定制 blade、迁移、模型、控制器、路由。但我的问题具体是关于如何从一个包中插入一个已经构建的默认 CRUD 来修改它。
我的 PHP 职业生涯始于 WordPress、Drupal 等 CMS,然后是 CakePHP、Laravel。从过程编码开始,OOP 是一个学习曲线,对我来说仍然是一个学习曲线。但是搜索不同的平台让我明白,同样的事情可以用不同的方式来实现。
凭借 WordPress 插件开发经验,可以轻松使用操作和过滤器挂钩扩展功能。具有如下核心功能:
Fetch form data (3 fields)
hook here <---
Load form data (3 fields)
Submit form data (3 fields)
hook here <---
Save form data (3 fields)
可以通过以下插件轻松修改:
Fetch form data (3 fields)
action hook <--- (hooked - added 2 fields)
Load form data (5 fields)
Submit form data (5 fields)
filter hook <--- (hooked - added data of 2 additional fields)
Save form data (5 fields)
但是在 Laravel 中,我想在 Laravel 范围内实现类似的功能,我该怎么做?
我了解 @yield('my_hook')
的使用类似于 WordPress 中的操作挂钩。但是发现,如果我将多个挂钩到 @yield
上,它就会被覆盖。
我发现了几个像 eventy 这样的软件包,它们具有与 WordPress 类似的操作方法和过滤器挂钩,但实际上我要求的是 Laravel 方法来解决这个问题。
我遇到了 Laravel Events,这是像 WordPress 中的动作挂钩一样挂钩的解决方案吗?还有过滤器钩子,我认为我们可以扩展模型来修改它的行为。但恐怕,这些都是想象,未必就是现实。我对此一无所知。
我能得到一些关于这个问题的启示吗?
WordPress 和 Laravel 都是完全不同级别的框架,因此比较起来可能很困难。
在 Laravel 中,您有控制输出的工具(html 页面)。 @yield
是一个示例,当您使用 Blade 模板时。
此外,还有一些方法可以挂钩框架执行过程中的某些事件(Laravel 个事件)。
在 Laravel 中,您在模型-视图-控制设置中工作,这意味着您 can/should:
- 为您正在使用的每个数据实体制作一个模型,并赋予它完成自己工作的责任。另见 https://laravel.com/docs/5.8/eloquent#events 钩子
- 为您希望从前端执行的每个操作创建控制器方法。最好使这些方法尽可能短。例如最多 10 行。
- 使用 Blade 模板引擎制作复杂的模板
希望这会有所帮助。