typerocket / pro
TypeRocket Pro for WordPress。
v5.0.0-beta1
2020-10-12 17:05 UTC
Requires
- php: >=7.2.5
- ext-json: *
- typerocket/core: 5.0.*
Requires (Dev)
- phpunit/phpunit: 7.4.*
README
TypeRocket Pro 是一个高度集成的 WordPress 框架,专为现代开发者设计。TypeRocket Pro 将 ACF、Laravel、Custom Post Type UI 等高级功能汇集到一个地方。
享受流畅的语法、精良的 UI 和功能强大的快速 API... TypeRocket Pro。
现代功能
在更短的时间内以更少的维护时间构建应用程序。
- 高级自定义文章类型、分类和后台页面。
- 自定义元框、表单、字段集、重复字段和 20+ 其他输入字段。
- 条件字段和上下文。
- 将自定义字段与外部 API 集成。
- MVC、自定义路由和中间件。
- 依赖注入和服务容器。
- Galaxy CLI。
- 集成的 WYSIWYG Redactor 编辑器。
- 基于 Composer 的扩展发布。
- 完全集成的 WordPress ORM,具有高级功能,如预加载和对象缓存。
- 数据库迁移。
- 绕过 WordPress 插件存储库 API,为您的主题和插件提供自定义自动更新。
- Gutenberg 支持。
- 可配置的扩展,包括主题选项、SEO、Custom Post Type UI、懒加载图片调整大小、移除评论等。
- 灵活的模板,支持 Twig 或 Laravel Blade 集成。
- 高级策略、能力和角色 API。
- 还有更多...
高级自定义文章类型
使用更少的代码和无需 WordPress 动作和过滤器钩子,完全自定义您的自定义文章类型。
tr_post_type('Person') ->setIcon('users') ->forceDisableGutenberg() ->setTitlePlaceholder( 'Enter full name here' ) ->setArchivePostsPerPage(-1) ->setTitleForm( function() { $form = tr_form(); echo $form->image('Photo'); echo $form->text('Company'); echo $form->editor('About Person'); }) ->addColumn('company');
重复字段
将重复字段添加到您的 WordPress 管理员或前端。
$form->repeater('Speakers')->setFields([ $form->image('Photo'), $form->row( $form->text('Given Name'), $form->text('Last Name') ) ]);
条件字段
仅在字段条件为真时显示字段或上下文。
echo $form->image('Photo'); echo $form->text('Alt Text')->when('photo'); echo $form->Toggle('Has Name'); echo $form->feildset('Full Name', 'Your identity information.', $form->text('Given Name'), $form->text('Last Name') )->when('has_name');
WordPress 集成高级 ORM
使用预加载和集成 WordPress 对象缓存,通过创建模型和使用 eager loading 显著提高您网站的性能。
(new Post)->with('meta')->published()->whereMeta('featured', '=', '1')->get();
使用熟悉的 Laravel ORM eloquence 定义模型之间的关系。
class Post extends WPPost { // ... public function categories() { return $this->belongsToTaxonomy(Category::class, 'category'); } public function tags() { return $this->belongsToTaxonomy(Tag::class, 'post_tag'); } }
MVC
停止修改 WordPress 模板和重写系统。使用自定义路由创建 MVC 应用程序。
tr_route()->put()->on('/profile/*', 'update@Member'); tr_route()->get()->on('/profile/*', 'profile@Member');
在控制器和模型中使用身份验证策略,使用视图,向管理员发送闪存通知消息,从服务容器中获取类等。
class MemberController extends Controller { public function profile(Member $member) { return tr_view('profile.show', compact('member')); } public function update(Member $member, AuthUser $user, Request $request ) { if(!$member->can('update', $user)) { tr_abort(401); } $member->save($request->getFields()); tr_response()->flashNext('Profile updated!'); return tr_redirect()->back(); } }
或者,只需返回模型或集合作为响应即可快速创建 JSON API。
tr_route()->get()->on('posts', function() { return (new Post)->with('meta')->published()->get(); });
模板
使用视图和控制器简化模板。在后台和前端使用视图。
/** * Example WordPress Template MVC * * your-theme/index.php * * @var WP_Post[] $posts */ tr_template_controller(function() use ($posts) { $button_class = tr_post_field('button_class'); $classes = class_names('button', [ 'button-primary' => $button_class == 'primary', 'button-error' => $button_class == 'error', ]); return tr_view('index', compact('classes')); });
// Admin page tr_page('tools', 'exporter', 'Exporter')->setView(tr_view('tools.exporter'));
更多功能
更多功能请访问 http://typerocket.com/pro。
许可证
TypeRocket Pro 是开源软件,许可协议为 GNU 通用公共许可证 3.0。