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