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

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 一个机会吧,也欢迎大家给一些建议或者直接贡献代码,谢谢!


Practice makes perfect.

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

译文地址:https://laravel-china.org/topics/9829/pr...

本帖已被设为精华帖!
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 4

@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个月前
ayauper

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

4个月前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!