7月 2026の記事

【第1回】Drupalカスタムモジュールのフォルダ構成

MAXIMUM に投稿

タグ

これから数回に分けてDrupalカスタムモジュール作成方法についての社員ブログを書いていこうかと思います。
先ずは、最初の一歩として大雑把にでもアーキテクチャの勉強から入っていこうかと思います。
それでは一般的なフォルダ構成です。

AI に社内チャットを検索させる! RocketChat 用 MCP サーバーの作り方

トビウオ に投稿

概要

「あの話題、どこのチャンネルで話してたっけ……?」と、チャットツールの中を延々とさまよった経験は無いでしょうか。

弊社では社内チャットとして「RocketChat」を利用しています。RocketChat は、自前のサーバーでホストできるオープンソースのチャットツールとしては定番どころの一つで、Slack の代替として世界中で使われています(公式サイトによれば利用者は1,200万人以上)。ところがこの RocketChat、少なくとも私たちの環境では、Slack や Discord のような全チャンネルをまたぐ横断検索ができません。話題を探すには、チャンネルを一つずつ開いて検索して回ることになります。これが地味につらい。

Drupalで集計用コントローラを作成する手順

MAXIMUM に投稿

タグ

イベント出欠有無など、何かしらの回答データを集計したりグラフ化したい場面が多いかと思います。
そういった場面用に今回はDrupalカスタムモジュールにて実装手順を説明していこうかと思います。

Drupal10で標準組み込みになっているBigPipeという考え方の枠組みについて

MAXIMUM に投稿

タグ

1.背景

DrupalはFacebookが提唱したPHPのBigPipe技術を使ってHTMLページを生成しているようです。※似たようなものにAjaxがあります。
今回はそこに焦点を当ててみようかと思います。

2.よくある一括送信タイプの場合

先ずはWordPress等のよくあるブログ作成の場合どうなっているかを見ていきます。下記手順になります。
 ユーザがページにアクセス
→PHPが上から順番にプログラムを実行し、ページの全HTMLをメモリ上に完成
→完成したHTMLを一括でブラウザに送信

このやり方だと、ページ内に1箇所でも重いデータがあると処理が終わるまで、ユーザーは待たされることになります。

PHPでのクラスやメソッドの使い方 ※Javaとも比較

MAXIMUM に投稿

タグ

1.オブジェクトを作成する

クラスを使う前に先ずはオブジェクトを作成します。
メモリには何も保存されていないため、このようにnewする作業が前段で必要になります。
中身は関数+データになります。
$today = new DateTime();
※DateTimeはPHP標準クラスのため宣言不要

流れとしてはこうなります。
DateTimeクラス

DateTimeオブジェクト生成