gearbox-solutions/jetstream-filemaker

为 Laravel Jetstream 开发的扩展,使其能够将 FileMaker 作为主数据源使用

2.0 2024-03-22 18:27 UTC

This package is auto-updated.

Last update: 2024-09-04 16:54:41 UTC


README

Total Downloads Latest Stable Version License

简介

Laravel Jetstream 是构建 Web 应用程序的一个很好的起点。Laravel 和 Eloquent-FileMaker 使得通过 FileMaker 数据 API 存储和检索数据变得简单,然后可以将这些数据集成到 Laravel/Jetstream 应用程序中。然而,Jetstream 的默认行为是使用 SQL 数据库,如 MySQL 或 SQLite。通常情况下,不能将 FileMaker 数据库用作 Jetstream 的唯一数据源。

本软件包旨在允许您将 FileMaker 数据库和 FileMaker 数据 API 作为 Jetstream 应用程序的数据源。使用本软件包,您不再需要拥有主 SQL 数据库,然后使用 FileMaker 进行其他数据操作。FileMaker 可以成为您的 Jetstream 应用程序使用的唯一数据库。

支持

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

准备您的 FileMaker 数据库

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

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

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

已预配置了一个名为 jetstream 的数据 API 用户,密码也设置为 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,
  ],
],

您还需要将新的FileMaker数据库连接添加到config/database.php文件中的connections数组。这将设置一些默认值,这些值将被.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文件中设置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许可证授权。