eftersom / larafeed
Laravel 馈送器。
Requires
- php: ^7.3|^8.0
- laravel/framework: ^6.0|^7.0|^8.0|^9.0
- stevebauman/purify: ^5.0
README
系统要求
- PHP >= 7.3
- Laravel >= 6.* (通过到 9.*)
介绍
Larafeed 是一个开源软件包,用于在 Laravel 应用程序中使用。该软件包侧重于允许用户向现有的 Laravel 应用程序添加 RSS 馈送阅读器。该软件包可在同一应用程序中的多个用户之间使用。
添加和删除馈送非常简单!搜索馈送,如果它不适合您,请单击“x”删除它。
用户还可以在同一应用程序中共享和查看其他用户的馈送。
初始设置
Composer
通过运行以下命令安装
composer require eftersom/larafeed
发布公共软件包文件
安装完成后,运行
php artisan vendor:publish
选择 larafeed-public
这将安装软件包中的样式和图像,并确保它们可在您的项目中使用。
运行迁移
您的迁移应该已就绪,运行
php artisan migrate
如果出现问题,则回滚迁移并参考下一节。
可选:发布迁移
当前的馈送结构对于大多数项目来说应该已经足够,不需要更改数据库。但是,如果您有不同的数据库设置,例如,您可能不是使用 uuids 作为用户 id。那么,您还需要运行以下命令
php artisan vendor:publish
然后选择以下选项
larafeed-migrations
这将把 larafeed 软件包中所需的迁移复制到主应用程序的数据库/migrations 文件夹中。从现在开始,您必须根据需要更改迁移。例如,如果您使用的是大整数的递增 id 而不是 uuid 作为用户 id,您可以在 {date_string_identifier}_create_feed_user_table.php 中将 feed_user 的类型更改为以下内容
$table->uuid('user_id')->index()
-> $table->unsignedBigInteger('user_id')->index()
然后像往常一样运行 php artisan migrate
。在本例中,这将防止外键约束问题。
设置完成!
至于初始设置,这就完成了!您可以开始使用了。
关于其他馈送类型
向馈送应用程序添加另一种馈送类型,如 Atom,应该相对简单。
发布您的 Larafeed 配置文件,然后将馈送类型添加到配置数组中。在这里获取值非常重要,以便从我们的 Dom 文档、Elements 和 Nodes 获取数据。
例如
'atom-example' => [
'namespace' => null,
'type' => 'atom',
'version' => '1.0',
'query' => '/atom',
],
其余部分涉及一些编码。例如,通过向 src\Feed
和 src\Feed\Entry
文件夹中添加新的 Feed 和 Entry 对象来支持 Atom 类型,例如 Atom.php
和 AtomEntry.php
。
如何添加馈送类型
有两种选项(可能还有更多。)
1- 将馈送和条目类添加到您的主要项目,并在发布的 larafeed.php 配置中引用它们。
2- 或者,fork Larafeed 并将类添加到您的 forked 项目中。
将条目和馈送类添加到主项目
创建馈送和条目类
首先,将您的类添加到主项目(不是包),这可以是项目中的任何合理位置,但在本例中,我们将这些新的源类添加到文件夹 app\Packages\Larafeed
。
您需要两个类
app\Packages\Larafeed\Atom.php
,命名空间为: Eftersom\Larafeed\Feed
app\Packages\Larafeed\Entry\AtomEntry.php
,命名空间为: Eftersom\Larafeed\Feed\Entry
正确包含命名空间非常重要,这样composer可以正确地自动加载我们新的Entry和Feed类型,并且包会知道在哪里查找它们。
记住,在本例中,我们是在向主应用程序添加Atom源,而不是包本身。
重要:告诉composer如何找到新的包文件
在您的MAIN应用程序的composer.json中,您的自动加载规范应如下所示
"autoload": {
"classmap": [
"app/Packages/Larafeed/"
]
},
运行
composer dump-autoload
将您的新的类型添加到接受的类型配置中
最后,您需要做的就是将您的新Feed类型添加到“接受的类型”配置中,如本文档下面所述。您需要将包配置发布到主应用程序配置文件中。
php artisan vendor:publish
选择 larafeed-config
。
Feed类型安装完成!
就这样!现在您应该能够使用上述步骤将任何Feed类型添加到包中。
要在新的Laravel安装中看到这个动作,请查看
https://github.com/eftersom/larafeed-example
在这个空白的基本Laravel安装中,您可以查看如何将Atom源添加到项目中,以便包可以查找。查看app/Packages文件夹、composer.json以及主应用程序中找到的larafeed.php配置文件。这真的就这么简单!
分叉Larafeed
如果您不想完成前面的步骤,那么分叉总是一个选择。
通过分叉包并直接在分叉的包中包含更多的源类型来添加额外的源类型。分叉是在更改包的同时允许合并包作者/作者更新的一种干净的方式。
更改您的接受的类型配置
别忘了通过添加新的Atom接受的类型来更改您的Larafeed配置,就这样!您准备好了,Larafeed的服务将根据您如何配置Entry和Feed对象来处理新的源类型。
'accepted_types' => [
'rss-20' => [
'namespace' => null,
'type' => 'rss',
'version' => '2.0',
'query' => '/rss',
],
'atom' => [
'namespace' => 'http://www.w3.org/2005/Atom',
'type' => 'atom',
'version' => '1.0',
'query' => '/namespace:feed',
],
],
更新
包的当前版本列在本文档的顶部。
计划中的更新如下
- 前端Vue化。优化,利用vuex组件加载以加快页面加载时间。
- Larafeed-social:分享源,允许用户将源设置为公开或私有。目前所有用户源对所有面向Web的用户都是公开的。
- 允许用户有多个源。
- 在基本包中包含更多源类型。
许可证
Larafeed是开源的,请参阅 MIT许可证。