bluefeather/jetstream-filemaker

此包已被放弃且不再维护。作者建议使用 gearbox-solutions/jetstream-filemaker 包代替。

Laravel Jetstream 的扩展,使其可以与 FileMaker 作为主要数据源一起工作

2.0 2024-03-22 18:27 UTC

This package is auto-updated.

Last update: 2024-06-04 16:19:43 UTC


README

Total Downloads Latest Stable Version License

简介

Laravel Jetstream 是构建 Web 应用程序的一个很好的起点。Laravel 和 Eloquent-FileMaker 通过 FileMaker 数据 API 容易地存储和检索数据,并将其集成到 Laravel/Jetstream 应用程序中。然而,Jetstream 的默认行为是使用 SQL 数据库,如 MySQL 或 SQLite。通常情况下,无法仅使用 FileMaker 数据库与 Jetstream 的一切。

此包旨在允许您在 Jetstream 应用程序中独家使用 FileMaker 数据库和 FileMaker 数据 API 作为数据源。使用此包后,您不再需要具有主 SQL 数据库,然后使用 FileMaker 进行附加数据。FileMaker 可以成为您的 Jetstream 应用程序的唯一数据库。

支持

此包由 Gearbox Solutions 构建和维护。我们使用 Laravel、Vue、React 和 Node 等技术构建出色的 Web 应用程序。如果您需要帮助构建自己的 Web 应用程序,无论是使用此包还是其他技术,请联系我们 进行免费咨询,讨论您的项目。

准备您的 FileMaker 数据库

使用示例 FileMaker 数据库快速入门

如果您只想查看 Jetstream 与 FileMaker 一起工作的示例,可以解压并使用 dist 文件夹中的 Jetstream-FileMaker.fmp12 文件作为示例数据源(或在此下载)。此文件已配置了与 Jetstream 一起工作的最小必要字段,并且已经准备好通过数据 API 访问的布局。您可以在 FileMaker 服务器上托管此文件,并将其用作测试环境,以查看使用 FileMaker 数据库作为数据源的 Laravel Jetstream 的运行。

否则,请阅读下面的说明,了解如何配置您的现有 FileMaker 数据库以与 Jetstream 一起工作。示例文件是配置您自己的数据库的极佳参考。

已预配置数据 API 用户,用户名为 jetstream,密码也设置为 jetstream。您可以在 .env 中设置这些凭据,以配置您的应用程序访问此示例文件。

准备表和字段

Laravel Jetstream 需要某些表和字段才能运行。通常这将是 SQL 数据库,表和字段将通过迁移创建,但我们将使用 FileMaker 作为数据源。您的 FileMaker 数据库需要配置为具有与 Jetstream 一起工作的最小必需表。

您需要以下表

  • 用户
  • 密码重置
  • 个人访问令牌

这些表也必须包含支持Jetstream入门套件功能所需的最小字段。您FileMaker数据库所需的表和字段可以在本包的dist文件夹中找到的Jetstream-FileMaker.fmp12文件中找到(或在此下载)。您可以将这些表/字段复制到您的数据库中,重命名现有字段,或使用Eloquent-FileMaker字段映射功能将现有字段映射到预期的字段名称。

设置数据API访问布局

FileMaker数据API允许通过FileMaker数据库中的布局访问您的表。只有通过数据API访问的布局上的字段是可见的。这意味着您必须在布局上包含所有您希望通过数据API访问的字段。

作为一个起点,我们建议为每个表创建一个布局,其中包含您需要的最少字段数,为每个表中的每个布局创建一个。再次强调,示例Jetstream-FileMaker.fmp12是一个设置基本访问的优秀参考。

我们建议在您计划使用的布局名称前缀加上数据API,以确保它们既简单又独特。示例文件使用web_作为布局名称前缀,以确保布局名称不会与其他常见布局名称冲突。

默认情况下,Laravel会查找每个表的复数形式。如果您也使用布局名称前缀,则您的布局名称将需要是

  • web_users
  • web_password_resets
  • web_personal_access_tokens

示例Jetstream-FileMaker.fmp12文件已将这些准备为演示,因此您始终可以参考该文件。

如果您不想使用Laravel默认搜索的复数表名,您也可以通过在每个模型文件中设置表名(使用$table属性)来配置用于模型的布局名称。在设置表/布局名称时,不要包含任何配置的表前缀,例如web_。有关布局和表命名的更多信息,请参阅LaravelEloquent-FileMaker文档。

安装和配置Laravel

Laravel应按正常方式安装和配置。您可以通过官方Laravel网站上的说明开始。如果您已经知道您在做什么,则可以使用composer轻松安装。

composer create-project laravel/laravel example-app

安装Laravel Jetstream

与基本Laravel安装类似,您应遵循官方Jetstream文档中的说明正常安装Jetstream。

我们的建议是使用Inertia堆栈与Jetstream一起使用。快速安装的步骤如下

composer require laravel/jetstream
php artisan jetstream:install inertia
npm install
npm run dev

安装Jetstream-FileMaker

在安装了基本Jetstream之后,现在是时候安装Jetstream-FileMaker包,以便Jetstream能够与FileMaker作为数据源一起工作了。

使用Composer安装Jetstream-FileMaker

composer require gearbox-solutions/jetstream-filemaker

Jetstream-FileMaker需要更新默认的Jetstream User模型,并为PasswordResetPersonalAccessToken添加新的自定义模型。使用Artisan安装这些模型。

php artisan jetstream-filemaker:install

更新Laravel配置

所有基本依赖都已安装,现在是时候配置Laravel以指向您的FileMaker数据库了。更新config/auth.php并将现有的providers->users->driver值从eloquent更改为filemaker。这将告诉Laravel使用此包中包含的自定义FileMakerUserProvider来连接到FileMaker以读取和写入用户凭据。

'providers' => [
  'users' => [
    'driver' => 'filemaker',
    'model' => App\Models\User::class,
  ],
],

您还需要在 config/database.php 中的 connections 数组中添加一个新的 FileMaker 数据库连接。这将设置一些默认值,这些值将被 .env 文件中的设置覆盖。

  'connections' => [
        'filemaker' => [
            'driver' => 'filemaker',
            'host' => env('DB_HOST', 'fms.mycompany.com'),
            'database' => env('DB_DATABASE', 'MyDatabaseName'), 
            'username' => env('DB_USERNAME', 'MyUsername'),
            'password' => env('DB_PASSWORD', ''),
            'prefix' => env('DB_PREFIX', ''),
            'version' => env('DB_VERSION', 'vLatest'),
            'protocol' => env('DB_PROTOCOL', 'https'),
            'cache_session_token' => env('DB_CACHE_SESSION_TOKEN', true), // set to true to cache the session token between requests and prevent the need to re-login each time. This can be a significant performance improvement!
            'empty_strings_to_null' => env('DB_EMPTY_STRINGS_TO_NULL', true), // set to false to return empty strings instead of null values when fields are empty in FileMaker
        ],

最后,在 .env 文件中设置 update session_driver、cache_store 和数据库连接信息。如果您使用的是本包中包含的示例文件,您应按照以下方式配置您的 .env 文件(使用您的真实服务器地址在 DB_HOST 中)


# Use a session driver other than 'database'
SESSION_DRIVER=file

# Use a cache store other than `database`
CACHE_STORE=file

DB_CONNECTION=filemaker
DB_HOST=fms.mycompany.com
DB_DATABASE=Jetstream-FileMaker
DB_USERNAME=jetstream
DB_PASSWORD=jetstream
DB_PREFIX=web_

许可证

Jetstream-FileMaker 是在 MIT 许可证下开源的软件。