現在の位置: ホーム> 最新記事一覧> PHPを使用してsuitecrmのカスタムモジュールを開発する方法

PHPを使用してsuitecrmのカスタムモジュールを開発する方法

M66 2025-05-30

SuiteCRMの紹介

SuiteCRMは、中小企業や大規模な組織に適した、豊富な機能と高いカスタマイズ可能性を備えたオープンソースエンタープライズカスタマーリレーションシップマネジメント(CRM)システムです。柔軟なアーキテクチャを通じて、開発者は特定のニーズに応じて二次開発とモジュールの拡張を実行できます。

開発前の準備

モジュール開発の前に、SuiteCRM環境を構築し、対応するシステムアクセスおよび開発権限があることを確認してください。同時に、関連するコードの例を理解して適用するには、基本的なPHPプログラミングの知識が必要です。

カスタムモジュールを作成します

カスタムモジュールを作成するには、 custom/modulesディレクトリの下に新しいモジュールディレクトリを作成する必要があります。たとえば、モジュールのルートディレクトリとしてCustomModuleという名前のフォルダーを作成できます。

CustomModuleフォルダーには、通常、次の構造が含まれています。

  • CustomModule.php :モジュールのコアクラス、基本的な動作を定義します。
  • languageフォルダー:言語パッケージファイル、ローカリゼーションをサポートします。
  • metadataフォルダー:フィールド定義、データベース構造などの情報が含まれています。

モジュールクラスを定義します

CustomModule.phpでは、モジュールのメインクラスを定義し、SuiteCRMが提供するSugarBeanクラスを継承します。サンプルコードは次のとおりです。

 
<?php
if (!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');

class CustomModule extends SugarBean
{
    // モジュール名
    public $module_name = 'CustomModule';

    // データテーブル名
    public $table_name = 'custom_module';

    // モジュールオブジェクトエイリアス
    public $object_name = 'CustomModule';

    // 主キーフィールド
    public $object_field = 'id';

    /**
     * コンストラクタ
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * インターフェイス判断を実装します
     */
    public function bean_implements($interface)
    {
        switch ($interface) {
            case 'ACL': return true;
        }
        return false;
    }
}

フィールド構造を定義します

モジュールのフィールド定義は、通常、 custom_module.phpファイルの作成など、次のコンテンツを使用してmetadataフォルダーに配置されます。

 
<?php
$dictionary['CustomModule'] = array(
    'table' => 'custom_module',
    'fields' => array(
        array(
            'name' => 'id',
            'type' => 'id',
            'required' => true,
            'len' => 36,
        ),
        array(
            'name' => 'name',
            'type' => 'varchar',
            'len' => 255,
            'required' => true,
        ),
        // より多くのフィールド定義を追加できます
    ),
    'indices' => array(
        array(
            'name' => 'custom_module_pk',
            'type' => 'primary',
            'fields' => array('id'),
        ),
    ),
);

データベース操作を実行します

SuiteCRMは、 SugarQueryBeanFactoryを使用して追加、削除、変更、チェックなど、データベースを操作するための豊富なクラスと方法を提供します。以下は一般的な操作の例です。

クエリデータ


$query = new SugarQuery();
$query->from(BeanFactory::getBean('CustomModule'));
$query->select(array('id', 'name'));
$query->where()->equals('name', 'John Doe');
$result = $query->execute();

データを作成します


$customModule = BeanFactory::newBean('CustomModule');
$customModule->name = 'John Doe';
$customModule->save();

データを更新します


$customModule = BeanFactory::getBean('CustomModule', '12345678-1234-1234-1234-1234567890ab');
$customModule->name = 'Jane Doe';
$customModule->save();

データを削除します


$customModule = BeanFactory::getBean('CustomModule', '12345678-1234-1234-1234-1234567890ab');
$customModule->mark_deleted('12345678-1234-1234-1234-1234567890ab');

要約します

この記事では、モジュールの作成、クラス定義、フィールド構造設定、データベース操作方法など、PHPを使用してSuiteCRMでカスタムモジュールを開発する際の重要な手順を紹介します。これらの基本プロセスを習得することにより、開発者は実際のニーズに応じてCRM機能を柔軟に拡張し、ビジネスプロセスに準拠する管理システムを構築できます。