crell / planedo-bundle
Symfony 6 及以上版本使用的Feed聚合器包。
Requires
- php: ~8.1
- ext-intl: *
- doctrine/doctrine-bundle: ^2.4
- easycorp/easyadmin-bundle: ^4.0
- laminas/laminas-feed: ^2.15
- nyholm/psr7: ^1.4
- psr/clock: 1.0.0
- psr/http-client: ^1.0
- symfony/config: ^5.4 || ^6.0
- symfony/dependency-injection: ^5.4 || ^6.0
- symfony/form: ^5.4 || ^6.0
- symfony/framework-bundle: ^5.4 || ^6.0
- symfony/http-client: ^5.4 || ^6.0
- symfony/http-kernel: ^5.4 || ^6.0
- symfony/mailer: ^5.4 || ^6.0
- symfony/messenger: ^5.4 || ^6.0
- symfony/password-hasher: ^5.4 || ^6.0
- symfony/security-bundle: ^5.4 || ^6.0
- symfony/twig-bundle: ^5.4 || ^6.0
- symfony/yaml: ^5.4 || ^6.0
- symfonycasts/reset-password-bundle: ^1.11
- twig/twig: ^2.12|^3.0
Requires (Dev)
- dama/doctrine-test-bundle: ^6.7
- doctrine/doctrine-fixtures-bundle: ^3.4
- overtrue/phplint: ^4.1
- phpstan/phpstan: ^1.0
- phpunit/phpunit: ^9.5
- symfony/browser-kit: ^5.4 || ^6.0
- symfony/css-selector: ^5.4 || ^6.0
- symfony/phpunit-bridge: ^5.4 || ^6.0
This package is auto-updated.
Last update: 2024-09-11 15:29:09 UTC
README
Planedo 是一个针对 Symfony 6 的博客聚合器包。它的目标是提供一个接近于 Planet-style 的博客聚合器配置,尽可能多地在包中完成。
"Planedo" 是 Esperanto 中的 "Planet",即博客聚合器 "planet"。
安装
设置 Planedo 包有三种方法。
如果您只想使用 Planedo 作为独立应用程序并完成它,请安装 Planedo 应用程序。
composer project-create crell/planedo
这将创建一个新项目,预先配置为与 Planedo 一起使用。几乎所有的功能都在包中,因此您可以根据需要修改应用程序本身。Planedo 本身的未来更新将通过更新包通过 Composer 进行。
或者,您可以直接通过 composer 在您选择的 Symfony 5.4/6 应用程序中安装 Planedo 包。
composer require crell/planedo-bundle
如果您采用这种方法,则需要几个手动步骤将包连接到应用程序。
添加开发依赖项
目前,Planedo 使用 PHP-FIG 的预发布版本 PSR-20。它尚未在 Packagist 上,因此您需要在主应用程序的 composer.json
中包含以下内容
{ "repositories": [ { "type": "git", "url": "https://github.com/php-fig/clock.git" } ] }
这将允许 Composer 下载适当的包。一旦 PSR-20 发布,此步骤将不再需要。
启用包
将包添加到您的 bundles.php
文件
Crell\Bundle\Planedo\PlanedoBundle::class => ['all' => true],
路由
创建一个名为 config/routes/planedo.yaml
的新文件,并给它以下内容
# config/routes/planedo.yaml planedo_admin: resource: '@PlanedoBundle/config/routes_admin.yaml' prefix: '' planedo_public: resource: '@PlanedoBundle/config/routes_public.yaml' prefix: ''
上述设置假设您希望 Planedo 的路由位于您网站的根目录。如果不是这样,请根据您的喜好添加 prefix
,无论是前端还是管理路由。
用户和密码管理
Planedo 提供了自己的用户帐户和密码处理。禁用机制即将推出。
您也可以选择忽略提供的用户系统并使用您自己的。在这种情况下,请确保应访问 Planedo 管理区域的所有用户都分配了 ROLE_ADMIN
角色。如何完成这一点取决于您。
配置
Planedo 在 config/planedo.yaml
中包含自己的最小配置。有三个配置选项,都是可选的。默认值应该适用于大多数情况。
items_per_page
(默认 10):这个整数指定了在 HTML 列表中每页将显示多少个 feed 条目,在 RSS 和 Atom 中将显示总数。purge_before
(默认-30 days
):每次清理 cron 作业运行时,任何早于这个日期的条目将被删除。早于这个日期的条目也不会被导入。您可以使用任何根据 PHP 的 相对日期格式 有效的字符串。use_plain_text
(默认 false):如果设置为 true,RSS 和 Atom 聚合将使用text/plain
MIME 类型而不是适当的 XML MIME 类型。这主要用于调试,99% 的时间可以忽略。
例如
# config/planedo.yaml planedo: items_per_page: 20 purge_before: -60 days
初始设置
一旦 Planedo 设置好,您需要创建第一个管理员用户。为此提供了一个 CLI 命令。
bin/console planedo:create-user --email you@example.com
您将被提示输入密码,或者您也可以在命令行中提供。有关更多详细信息,请参阅命令的帮助文本。
现在您可以去 <planedo admin prefix>/admin
登录,然后开始添加源。
设置cron任务
无论您如何运行Planedo,您都需要通过所选的cron运行器设置两个cron任务。它们的运行频率由您决定,但至少建议每天运行一次。
第一个更新重新获取源以获取新条目
bin/console planedo:update-all
第二个更新删除旧条目(“旧”由purge_before
配置设置定义)
bin/console planedo:purge-old
队列
Planedo通过Symfony的消息总线系统运行大多数任务。这允许将其延迟到队列中。虽然不是必需的,但强烈建议您将以下消息连接到异步后端
Crell\Bundle\Planedo\Message\ApproveEntries
Crell\Bundle\Planedo\Message\PurgeOldEntries
Crell\Bundle\Planedo\Message\RejectEntries
Crell\Bundle\Planedo\Message\UpdateFeed
主题
默认情况下,Planedo几乎没有主题。它可以工作,但外观并不美观。
您可以自由地重新设计任何模板,以满足您的需求。请参阅templates/
目录以获取可以覆盖的完整集合。
贡献
安全性
如果您发现任何安全问题,请通过发送电子邮件到larry at garfieldtech dot com而不是使用问题跟踪器。
致谢
许可协议
AGPL版本3或更高。请参阅许可文件以获取更多信息。