[项目推荐] Corcel 让你在 WordPress 中使用 Laravel

file

你想过可以在 WordPress 中使用 Laravel 或者任意一种 PHP 框架吗? Corcel 可以帮你实现!

开发网站应用就应该是快捷并有趣的。当然了,每个应用都会有它自己的需求和生命周期。

WordPress 是基于 PHP 编写的功能强大的 CMS,你可以使用它非常快的创建你的产品。然而,它并没有遵循最近 PHP 的变化和约定,但是你可以将它与其他类似 Laravel 这样的框架一起使用来平衡这一点。

Corcel

我认为 WordPress 的后台管理面板很棒。它有一堆插件,可以让你快速地生成字段,文章类型,图片,作物等等。这真的很棒!

这就是为什么有了 Corcel ,它可以轻松让你从 WordPress 数据库中获取数据。你只需要使用 Composer 在你的 PHP 应用程序框架( Laravel 或其他框架)中安装 WordPress 和 Corcel 就可以了。

当然我们也可以在 WordPress 中使用 MVC !

你可以为你的 WordPress 搭建控制器、模型和视图。Corcel 为你创建了一个模型集合来检索文章、页面和菜单等,甚至还可以连接不同的数据库,一个用于 Laravel ,另一个用于 WordPress 。

<?php // File: /config/database.php
'connections' => [
    'mysql' => [
        'driver'    => 'mysql',
        'host'      => 'localhost',
        'database'  => 'app',
        'username'  => 'admin'
        'password'  => 'secret',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
        'engine'    => null,
    ],
    'wordpress' => [
        'driver'    => 'mysql',
        'host'      => 'localhost',
        'database'  => 'corcel',
        'username'  => 'admin',
        'password'  => 'secret',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => 'wp_',
        'strict'    => false,
        'engine'    => null,
    ],

],

下面开始从 WordPress 数据库中获取你所需要的东西:

<?php // File: /app/Http/Controllers/AnyController.php
// ...
public function index()
{
    $posts = Post::published()->take(10)->get();
    $page = Page::where('post_name', 'about')->first();
    return view('posts.index', compact('posts', 'page'));
}
// ...

文章类型与自定义字段

不知道你是否使用过高级自定义字段功能( ACF )?在这里你也可以得到所有的自定义字段:

<?php
$post = Post::find(1);
$avatar = $post->meta->avatar;
$phone = $post->meta->phone;

你可以创建与自定义文章类型相关的自定义模型:


<?php 
use Corcel\Post as Corcel;
class Service extends Corcel
{
    protected $postType = 'service';
}

关于更多的功能,你可以直接在 GitHub 仓库中查看。
你可以在任何 PHP 框架中使用 Corcel,甚至是像 Slim,Silex 这样的微型框架。它可以让你获得所有 WordPress 管理面板数据,并可以让你使用自定义路由、控制器、模型和视图来组织你的项目。
来给 Corcel 一个机会吧,也欢迎大家给一些建议或者直接贡献代码,谢谢!

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://medium.com/@jgrossi/laravel-and-...

译文地址:https://learnku.com/laravel/t/9829/proje...

本帖已被设为精华帖!
本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 4

@Summer 标题的翻译有偏差,原文是 Laravel and WordPress together with Corcel。不逐字翻译,翻译成《Corcel 让你在 Laravel 中使用 WordPress》更准确,其实不仅是 Laravel 甚至可以是 any php application,但是关键的重点是在其他框架中使用 WordPress,而不是在 WordPress 中使用 Laravel。

5年前 评论

@Summer 标题的翻译有偏差,原文是 Laravel and WordPress together with Corcel。不逐字翻译,翻译成《Corcel 让你在 Laravel 中使用 WordPress》更准确,其实不仅是 Laravel 甚至可以是 any php application,但是关键的重点是在其他框架中使用 WordPress,而不是在 WordPress 中使用 Laravel。

5年前 评论
Summer

@chenos 核心 是 Wordpress,数据结构和后台等都是 Wordpress,Corcel 只是扮演前端数据读取的角色。

从使用场景上讲,一般是客户有一个 Wordpress 站点需要二次开发,招募你,而你更加喜欢使用 Laravel 开发,所以使用 Corcel 以便在 WordPress 中使用 Laravel 。

没啥毛病。

5年前 评论

@Summer 更准确来说,Corcel 是一个基于 Eloquent 实现的 WordPress ORM。Eloquent 能用在哪里,那作为 WordPress ORM 的 Corcel 就能用在哪里。

Corcel 的好处是让项目脱离了笨重的 WordPress 代码, WordPress 只做后台数据管理,其他部分可以用任意 MVC 框架来做。不仅仅是 Laravel ,还可以是 Lumen 甚至是 Slim 或者其他框架。

所以核心来说,使用 WordPress 数据,而不是使用 WordPress 框架,再准确点翻译可以叫 《Corcel 让你在 Laravel 中使用 WordPress(数据)》

就个人体会来说,在 WordPress 项目中只使用 Eloquent 比较鸡肋,但是在 Laravel 项目中有调用 WordPress 数据的需求时,Corcel 就很方便了。

5年前 评论

做外包,简单开发是可以的

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!