アーキテクチャー
4D プロジェクトは、一つのプロジェクトルートフォルダー (パッケージフォルダー) に格納された、複数のファイルやフォルダーから構成されています。例:
- MyPackage (プロジェクトルートフォルダー)
ComponentsDataLogsSettings
DocumentationPluginsProjectDerivedDataSourcesTrash
ResourcesSettingsuserPreferences.usernameWebFolder
バイナリーデータベースから変換されたプロジェクトの場合には、追加のフォルダーが存在している場合があります (doc.4d.com にて "データベースをプロジェクトモードに変換する" 参照)。
Project フォルダー
典型的な Project フォルダーの構造です:
<applicationName>.4DProjectファイルSourcesClassesDatabaseMethodsMethodsFormsTableFormsTriggers
DerivedDataTrash(あれば)
<applicationName>.4DProject ファイル
プロジェクトを定義し、起動するためのプロジェクト開発ファイルです。このファイルを開くには次のいずれかが必要です:
- 4D
- 4D Server (読み取り専用;リモートプロジェクトを開く 参照)
4D プロジェクトの開発は 4D によっておこない、マルチユーザー開発はソース管理ツールによって管理します。 4D Server は .4DProject ファイルを開くことができますが、クライアントからの開発はおこなえません。
このテキストファイルには設定キー (具体的には "tokenizedText": false) が含まれる場合があります。
Sources
| 内容 | 説明 | 形式 |
|---|---|---|
| catalog.4DCatalog | テーブルおよびフィールド定義 | XML |
| catalog_editor.json | ストラクチャーエディターでのテーブル、フィールド、およびリンクのカスタム位置と色。変換されたプロジェクトでは 互換性設定 に依存します。 | JSON |
| folders.json | エクスプローラーフォルダー定義 | JSON |
| menus.json | メニュー定義 | JSON |
| roles.json | プロジェクトの 権限、パーミッションおよびその他のセキュリティ設定 | JSON |
| settings.4DSettings | ストラクチャーデータベース設定。ユーザー設定 または データファイル用のユーザー設定 が定義されている場合は、そちらの設定が優先されます (設定の優先順位 も参照ください)。警告: コンパイル済みアプリケーションの場合、ストラクチャー設定は読み取り専用の .4dz ファイルに格納されます。運用時にカスタム設定を定義するには、ユーザー設定を有効化 し、ユーザー設定 または データファイル用のユーザー設定 を使う必要があります。 | XML |
| AIProviders.json | ストラクチャー AI プロバイダー設定ファイル。ユーザー設定 または データファイル用のユーザー設定 に追加された AIProviders.json ファイルによって上書き可能です(設定の優先順位も参照してください)。 | JSON |
| tips.json | 定義されたヘルプTips | JSON |
| lists.json | 定義されたリスト | JSON |
| filters.json | 定義されたフィルター | JSON |
| dependencies.json | プロジェクトに ロードするコンポーネント の名前 | JSON |
| HTTPHandlers.json | Web サーバー用に定義されたカスタムの HTTP リクエストハンドラー。 | JSON |
| HTTPRules.json | Web サーバー用に定義されたカスタムの HTTP ルール | JSON |
| styleSheets.css | CSS スタイルシート | CSS |
| styleSheets_mac.css | Mac用 CSS スタイルシート (変換されたバイナリーデータベースより) | CSS |
| styleSheets_windows.css | Windows用 CSS スタイルシート (変換されたバイナリーデータベースより) | CSS |
Classes
| 内容 | 説明 | 形式 |
|---|---|---|
| className.4dm | 特定のオブジェクトをインスタンス化するための、ユーザークラス用の定義メソッド。 1クラスにつき1ファイル。 ファイル名がクラス名になります。 | text |
DatabaseMethods
| 内容 | 説明 | 形式 |
|---|---|---|
| databaseMethodName.4dm | プロジェクト内で定義されているプロジェクトメソッド (1つのメソッドにつき1ファイル)。 (1つのメソッドにつき1ファイル)。 | text |
Forms
| 内容 | 説明 | 形式 |
|---|---|---|
| formName/form.4DForm | プロジェクトフォームの定義 | json |
| formName/method.4dm | プロジェクトフォームメソッド | text |
| formName/Images/pictureName | プロジェクトフォームのスタティックピクチャー | picture |
| formName/ObjectMethods/objectName.4dm | オブジェクトメソッド (1つのオブジェクトメソッドにつき1ファイル) | text |
Methods
| 内容 | 説明 | 形式 |
|---|---|---|
| methodName.4dm | プロジェクト内で定義されているデータベースメソッド プロジェクト内で定義されているデータベースメソッド (1つのデータベースメソッドにつき1ファイル)。 (1つのメソッドにつき1ファイル)。 | text |
Shared
| 内容 | 説明 | 形式 |
|---|---|---|
| assets/ | Qodly ページで使用されているピクチャーのような、共有されたファイル | 様々 |
| CustomComponents/ | Qodly ページで使用されるカスタムのコンポーネント | json |
| other_files.json | Qodly ページで使用されるCSS やデータソースなどの共有された要素 | json |
TableForms
| 内容 | 説明 | 形式 |
|---|---|---|
| n/Input/formName/form.4DForm | 入力テーブルフォームの定義 (n: テーブル番号) | json |
| n/Input/formName/Images/pictureName | 入力テーブルフォームのスタティックピクチャー | picture |
| n/Input/formName/method.4dm | 入力テーブルフォームのフォームメソッド | text |
| n/Input/formName/ObjectMethods/objectName.4dm | 入力テーブルフォームのオブジェクトメソッド (1つのオブジェクトメソッドにつき1ファイル) | text |
| n/Output/formName/form.4DForm | 出力テーブルフォーム (n: テーブル番号) | json |
| n/Output/formName/Images/pictureName | 出力テーブルフォームのスタティックピクチャー | picture |
| n/Output/formName/method.4dm | 出力テーブルフォームのフォームメソッド | text |
| n/Output/formName/ObjectMethods/objectName.4dm | 出力テーブルフォームのオブジェクトメソッド (1つのオブジェクトメソッドにつき1ファイル) | text |
Triggers
| 内容 | 説明 | 形式 |
|---|---|---|
| table_n.4dm | プロジェクト内で定義されているトリガーメソッド ( 1つのテーブルにつき1ファイル;n: テーブル番号) | text |
注: 拡張子 .4dm のファイルは、4Dメソッドのコードをテキスト形式で格納しており、ソース管理ツールに対応しています。
WebForms
| 内容 | 説明 | 形式 |
|---|---|---|
| QodlyFormName.WebForm | JSON で表された Qodly ページ | JSON |
| crafted_components.json | Qodly ページ上の クラフトコンポーネント の詳細 | JSON |
Trash
プロジェクトから削除されたメソッドやフォームがあれば、Trash フォルダーにはそれらが格納されます。たとえば、つぎのフォルダーが格納されている場合があります:
MethodsFormsTableForms
削除された要素はファイル名に括弧が付いた形でフォルダー内に置かれます (例: "(myMethod).4dm")。フォルダーの構成は Sources フォルダーと同じです。
DerivedData
DerivedData フォルダーには、処理を最適化するため 4D が内部的に使用するキャッシュデーターが格納されます。これらは必要に応じて自動的に生成・再生成されます。このフォルダーは無視してかまいません。
Libraries
このフォルダーは macOS でのみ使用されます。
Libraries フォルダーには、macOS 上で Apple Silicon用にコンパイル された結果のファイルが格納されます。
Resources
Resources フォルダーには、追加のカスタムプロジェクトリソースファイルやフォルダーが格納されます。アプリケーションインターフェースの翻訳やカスタマイズに必要なファイルはすべてここに格納します (ピクチャー、テキスト、XLIFF ファイルなど)。 4D は自動のメカニズムによってフォルダー内のファイル (とくに XLIFF ファイルおよびスタティックピクチャー) を扱います。リモートモードにおいては、サーバーとすべてのクライアントマシン間でファイルを共有することが Resources フォルダーによって可能です。 (4D Server リファレンスマニュアル の リソースフォルダーの管理 を参照ください)。
| 内容 | 説明 | 形式 |
|---|---|---|
| 項目 | プロジェクトリソースファイルとフォルダー | 様々 |
| Images/Library/item | ピクチャーライブラリの個別ピクチャーファイル(*)。各アイテムの名称がファイル名となります。名称が重複する場合には、名称に番号が追加されます。 | picture |
(*) .4db バイナリーデータベースから変換されたプロジェクトの場合のみ
Data
Data フォルダーには、データファイルのほか、データに関わるするファイルやフォルダーがすべて格納されています。
| 内容 | 説明 | 形式 |
|---|---|---|
| data.4dd(*) | レコードとして入力されたデータと、レコードに属するデータが格納されたデータファイルです。 4D プロジェクトを開くと、アプリケーションはカレントデータファイルをデフォルトで開きます。このファイルの場所や名称を変更した場合は、データファイルを開く ダイアログボックスが表示され、使用するデータファイルを選択するか、新しいデータファイルを作成できます。 | binary |
| data.journal | データベースがログファイルを使用する場合のみ作成されます。ログファイルは2つのバックアップ間のデータ保護を確実なものにするために使用されます。データに対して実行されたすべての処理が、このファイルに順番に記録されます。つまりデータに対して操作がおこなわれるたびに、データ上の処理 (操作の実行) とログファイル上の処理 (操作の記録) という 2つの処理が同時に発生します。ログファイルはユーザーの処理を妨げたり遅くしたりすることなく、独立して構築されます。データベースは 1つのログファイルしか同時に使用できません。ログファイルにはレコードの追加・更新・削除やトランザクションなどの処理が記録されます。ログファイルはデータベースが作成される際にデフォルトで生成されます。 | binary |
| data.match | (内部用) テーブル番号に対応する UUID | XML |
(*) .4db バイナリーデータベースからプロジェクトに変換した場合、データファイルは変換による影響を受けません。このデータファイルの名称を変更して移動させることができます。
Settings (ユーザーデータ)
このフォルダーには、アプリケーションの管理に使用される データのユーザー設定 が格納されます。
| 内容 | 説明 | 形式 |
|---|---|---|
| directory.json | このデータファイルを使ってアプリケーションが実行されている場合に使用する 4D グループとユーザー、およびアクセス権の定義 | JSON |
| Backup.4DSettings | このデータファイルを使ってデータベースが実行されている場合に使用する バックアップオプション を定義したデータベースバックアップ設定です。バックアップ設定に使われるキーについての説明は バックアップ設定ファイル マニュアルを参照ください。 | XML |
| settings.4DSettings | データファイル用のカスタムデータベース設定。 | XML |
| AIProviders.json | このデータファイル用のAI プロバイダー設定ファイル | JSON |
Logs
Logs フォルダーには、プロジェクトが使用するすべてのログファイルが格納されます。以下のログファイルが格納されます:
- データベース変換
- Webサーバーリクエスト
- バックアップ/復元アクションのジャーナル (Backup Journal[xxx].txt、バックアップジャーナル 参照)
- コマンドデバッグ
- 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成)
データフォルダーが読み取り専用モードの場合やメンテナンスログファイルの保存には、システムのユーザー設定フォルダー (Active 4D Folder のこと、詳しくは Get 4D folder コマンド参照) 内にある追加の Logs フォルダーが利用されます。
Settings (ユーザー)
このフォルダーには、アプリケーションの管理に使用される ユーザー設定 が格納されます。
この設定は ストラクチャー設定 より優先されます。しかしながら、データファイル用のユーザー設定 が存在する場合は、そちらが優先されます。設定の優先順位 も参照ください。
| 内容 | 説明 | 形式 |
|---|---|---|
| directory.json | 4D グループとユーザー、およびアクセス権の定義 | JSON |
| Backup.4DSettings | バックアップ開始時に バックアップオプション を指定するためのデータベースバックアップ設定です。このファイルは、バックアップジャーナル に保存する情報量などの追加オプションの確認や設定にも使用することができます。バックアップ設定に使われるキーについての説明は バックアップ設定ファイル マニュアルを参照ください。 | XML |
| BuildApp.4DSettings | アプリケーションビルダーのダイアログボックス、または BUILD APPLICATION コマンドを使ったときに自動的に作成されるビルド設定ファイル | XML |
| settings.4DSettings | プロジェクト用のカスタム設定 (すべてのデータファイル) | XML |
| logConfig.json | カスタムの ログ設定ファイル | json |
| AIProviders.json | このプロジェクト用のAI プロバイダー設定ファイル(全データファイル) | JSON |
userPreferences.<userName>
ブレークポイントやウィンドウの位置など、ユーザーの環境設定を定義するファイルを格納するフォルダーです。このフォルダーは無視してかまいません。格納されるファイルの例です:
| 内容 | 説明 | 形式 |
|---|---|---|
| methodPreferences.json | カレントユーザーのコードエディター環境設定 | JSON |
| methodWindowPositions.json | カレントユーザーのメソッドのウィンドウポジション | JSON |
| formWindowPositions.json | カレントユーザーのフォームのウィンドウポジション | JSON |
| workspace.json | 開かれているウィンドウのリスト;macOS ではタブウィンドウの順序 | JSON |
| debuggerCatches.json | キャッチコマンドリスト | JSON |
| recentTables.json | 最近開かれたテーブルのリスト | JSON |
| preferences.4DPreferences | カレントデータパスおよび主なウィンドウの位置 | XML |
| CompilerIntermediateFiles | Apple Silicon用にコンパイルした結果生成される中間ファイル | Folder |
Components
プロジェクトに埋め込まれたコンポーネントを格納するフォルダー (Projectフォルダーと同じ階層に保存する必要があります)。これらのコンポーネントは、他のどの場所よりも優先されます。
dependencies.jsonファイルと environment4d.jsonファイル (任意) を使用して、コンポーネントを宣言することもできます。
Plugins
アプリケーションプロジェクトが利用するプラグインを格納するフォルダーです。このフォルダーは、Project フォルダーと同じ階層に置きます。
Documentation
このフォルダーには、クラス・メソッド・フォームなどのプロジェクト要素について作成されたドキュメンテーションファイル (.md) がすべて格納されます。ドキュメンテーションファイルは、4D エクスプローラーにて表示・管理されます。
詳細については プロジェクトのドキュメンテーション を参照ください。
WebFolder
ページ、ピクチャーなどのための、4D Web サーバーのデフォルトのルートフォルダー。 Web サーバーが初回起動時に、自動で作成されます。
.gitignore ファイル (任意)
git が無視するファイルを指定します。プロジェクトに gitignore ファイルを含めるには、環境設定 > 一般 ページの .gitignore ファイルを作成する オプションを使用します。このファイルの内容を設定するには、.gitignore ファイルを作成する を参照ください。