当サイトは、海外政府機関でも広く利用されている Drupal10 をベースに開発・運用しています。
Drupalは学習曲線は険しい(学習に時間がかかる)と言われています。 Drupalが初心者にとって難しい理由には、Drupalのルールや処理の作法が厳格であること、 Drupalの日本語の情報が少ないこと、 またDrupalのバージョンにより仕様がよく変わり古いネット情報で混乱をまねくこと、 などがあげられます。これは短納期の案件が多い日本でDrupalが普及しなかった原因の一つ考えられます。 しかし、今回DrupalをWEBサービスのフレームワークに採用してわかったことは、 「Drupalの厳格なルールや処理の作法」は、コードの可読性が向上を、「ロジックの隠蔽化・共通化」は 影響範囲の限定と設計の簡素化を促し、結果的に開発・テストおよび不具合修正にかかる時間を 大幅に削減できるということでした。
ここでは基本的に自分自身の備忘録としてDrupalや開発のTipsまたはDrupal開発で個人的に調べたり感じたりしたことを書き残しています。 この情報が今後Drupalを学習する方の一助になれば幸いです。
当記事に関するお問い合わせやご質問は、お問い合わせフォームにてお願いいたします。
投稿日: 2024-10-20
Drupal 10 のサポートは2026 年中下旬頃までです。まだ時間的な余裕があるとはいえ、アップグレードを成功させるには準備が重要です。ここでは、Drupal の最新バージョン 11 への移行に向けて準備するための重要な手順をご紹介します。
投稿日: 2024-10-06
「KUSANAGI」とは、プライム・ストラテジー社が提供するパッケージサービスで、Webシステムを高速に処理できるように最適化されたサーバー環境です。KUSANAGI9を利用してサクッとDrupalを構築します。
投稿日: 2024-08-02
2024年8月2日にDrupal 11.0.0(正式版)がリリースされました。 Drupal11では新しい技術が導入されています。その一部をご紹介します。
投稿日: 2024-01-27
Drupal10.2が2023年の年末にリリースされました。今回検証するDrupal10.2に新機能というのは、プラグインタイプなどで広く使われているDoctrine Annotationsの代わりに、Attributesが利用できるようになったそうなのでそれを使ってみます。
投稿日: 2024-01-27
SWIFTMAILER はセキュリティ上の理由で開発が終了しました。Drupal10.1以上にアップデートする場合は、SWIFTMAILERが使用できなくなりました。ここではSwiftmailerの代替モジュールとしてSymfony/mailerに置き換える方法をご紹介します。
投稿日: 2024-01-20
デジタル庁が推進してきた「政府ウェブサイトの標準化・統一化」の第一弾としてマイナンバーなどを扱うデジタル庁ホームページのフレームワークCMSにDrupalが採用されました。その詳細をご説明します!
投稿日: 2024-01-20
Drupal開発者がぜひとも知っておくべき18の黄金律(ベストプラクティス)です。27人のDrupal開発者にインタビューし、彼らがDrupal でモジュールを作成する際に守っている ルールや習慣を教えていただきました。その中で共通して守られているルールや習慣をご紹介します。
投稿日: 2024-01-15
遠隔の方々とお仕事をするとどうしてもメールでのやり取りが多くなります。今回はオンプレミス環境で使用できるクラウドストレージアプリNextcloudを手軽に使用できるレンタルサーバーに設置して動作を検証してみました。
投稿日: 2024-01-14
Drupal開発にVisual Studio Codeを使うためのノウハウを前回の記事で紹介しました。今回は、新しいDrupalサイトを立ち上げて実際にVisual Studio Codeを使って開発、デバッグができるようにしていきたいと思います。
投稿日: 2024-01-14
Visual Studio Code はMicrosoft が開発しているオープンソースコードのエディターです。有償または無償で様々なアドオンアプリが提供されているため、Web アプリを編集およびデバッグすることも可能です。 今回はDrupal開発者向けにIDEとしてVisual Studio Coodeを利用するための設定方法について説明します
投稿日: 2024-01-12
【注意】SWIFTMAILER はセキュリティ上の理由で開発が終了しました。Drupal10.1以上にアップデートする場合は、SWIFTMAILERが使用できなくなりました。
投稿日: 2024-01-12
海外の政府機関では DMSフレームワークにDrupalが積極的に採用されています。海外でDrupalが好まれる理由について解説しています。
投稿日: 2024-01-07
2022年の12月にDrupal10がリリースされたことをきっかけに、Drupalの学習と機能の評価を兼ねて当サイトを作ってみました。2023年3月から半年間いろいろ触ってみて、わかってきたことがあったのでつらつらと書いてみました。
投稿日: 2024-01-06
Drupal は PHP の主要なフレームワークである symfony をベースにしています。Symfony 自身は多くのスワップ可能なコンポーネントで構成されており、この設計思想はDrupalの基幹になっています。DrupalはTWIGやイベントなどSymfonyの優れた機能も継承しています。
投稿日: 2024-01-06
新規エンティティを作成する際に、フィールドタイプを設定する必要があります。フィールドタイプはDrupal Core内で定義されています。ここでは、下記のサイトを参考にして、Drupal Coreで定義されている各フィールドタイプの設定方法についてご紹介します。
投稿日: 2024-01-03
NODEを表示するときに、カスタムモジュールで用意したTWIGテンプレートを使用して表示したい場合があります。その場合はhook_theme_suggestions_hookフックを使用すると可能です。ここではその使用例を紹介しています。
投稿日: 2023-12-30
レンダリングAPIは、レンダリング配列に設定されたデータをHTMLに変換して出力します。レンダリング配列は、レンダリングAPI用にあらかじめ定められた書き方やデータ構造を満たす連想配列のことを指します。ここでは、レンダリングAPIとTIWGを使用して動的にHTMLを生成してみました。
投稿日: 2023-12-30
Drupalモジュールでカスタム権限を制御する方法を紹介します。アクセス制御ハンドラーを使用すると、システムのさまざまな部分へのアクセス制御が可能になるため、 Drupal 全体で広く使用されています。ここでは、アクセス制御ハンドラーをノードエンティティタイプに追加し、カスタム権限に基づいてフィールドを制限する方法を説明します。
投稿日: 2023-12-29
Drupalは無料で利用できるユーザー作成のモジュールが40,000以上存在しますが、Drupalのスパム対策に有用なスパムモジュールを評価して選定するのは容易ではありません。ここでは、優れたDrupalスパム対策モジュールをいくつかご紹介しています。
投稿日: 2023-12-29
近年さまざまな業界・業種にDX化の波が押し寄せてきています。そしてDX化の大部分はコミュニケーションの効率化にあるといっても過言ではありません。ここでは開発現場におけるフリーランスとのコミュニケーションと業務の効率化の記事をご紹介します。
投稿日: 2023-12-28
海外のサイトですが、現役のDrupalプロジェクトのプロジェクトマネージャーが、DupalとRuby on Railsのそれぞれのメリットデメリットを考察している記事をご紹介します。
投稿日: 2023-12-27
コンテンツタイプのエンティティにアクセスするには、entityTypeManagerを使用する方法とentityQueryを使用する方法があります。entityTypeManagerが一般的によく使用されています。
投稿日: 2023-12-26
Drupalでコードの再利用を容易にする仕組みとして、プラグインというものがあります。 DrupalのプラグインはDrupal独自の仕様で、はじめてDrupalで開発する人がDrupalのコアロジックの機能を理解するまでにすこし時間がかかるかもしれませんが、一度理解してしまえばとても便利な機能です。
投稿日: 2023-12-26
今回はローカル環境にLANDOを構築して、プラグインやテーマなどの開発ができるように、PHPSTORMを使ってデバッグするまでの手順を記事にしました。
投稿日: 2023-12-26
ベーステーマを継承してサブテーマを作成する方法を説明します。テーマをカスタマイズする場合はベーステーマがアップデートされてもロールバックされないように必ずサブテーマを作成してからカスタマイズを実施する必要があります。
投稿日: 2023-12-25
Drupal はこれらすべてのジョブを同時に実行します。 特定の cron ジョブを非常に頻繁に実行したい場合はどうなるでしょうか? cron ジョブをモジュールごとに分離して各ジョブまたはジョブのグループを異なる時間に実行できるモジュール「UltimateCron」をご紹介します。
投稿日: 2023-12-24
せっかくウェブサイトに到達してもユーザ登録するのは色々手間が多いのでなかなかしてもらえないのが現状です。その手間を少しでも軽減するため、Googleアカウントに連携してユーザが登録できるようにしてみました。コントリビュートモジュールを使用しました。
投稿日: 2023-12-24
Drupal10で投稿ページなどのコンテンツの公開ステータスを変更するためのTipsです。Drupal8以前から仕様が若干変更になっています。少しハマってしまったので防備録として残しておきます。
投稿日: 2023-12-24
初めてDrupalをインストールする場合、初めてサイトにアクセスするとほぼ間違いなく「サイトに予期せぬエラーが起こりました。しばらくたってから再度お試しください。」のエラーが表示されます。これではどこで何が原因でエラーになったのかさっぱりわかりません。画面にデバッグ用エラー情報を表示する方法を説明します。
投稿日: 2023-12-24
サービスを使用するには、基本的に静的と注入の 2 つの方法があります 。 1 つ目はサービス コンテナーへの静的呼び出し、2 つ目は依存性注入を使用します。 静的呼び出しはDrupal7まで使用していた方法です。今回は海外の記事からの翻訳記事ですが説明します。
投稿日: 2023-12-23
ngrokとは、簡単にいうと、ローカルPC上で稼働しているネットワーク(TCP)サービスを外部公開できるサービスです。例えば、ローカルPCのWebサーバを外部公開することができます。先日利用したngrokというサービスが便利過ぎたので紹介します。
投稿日: 2023-12-22
エンティティにアクセスするには、entityTypeManagerを使用する方法とentityQueryを使用する方法があります。entityTypeManagerが一般的によく使用されています。 しかし、より高度なSQL条件を使用したい場合は、entityQueryを使用することになります。ここでは、両方の使い方を例を上げて説明します。
投稿日: 2023-12-22
レンダリングAPIは、レンダリング配列に設定されたデータをHTMLに変換して出力します。レンダリング配列は、レンダリングAPI用にあらかじめ定められた書き方やデータ構造を満たす連想配列のことを指します。ここでは、レンダリングAPIについて説明します。
投稿日: 2023-12-22
今回は、Twigテンプレートに埋め込んだロジックを、PHPコード同様に、今回はPHPSTORMなどのIDEでデバッグする方法について調べて書いてみました。PHPではブレイクポイントで停止ししてデバッグができてもTwigテンプレートではうまくいかない場合が多々あります。こちらの記事を参考にしてみてください。
投稿日: 2023-12-17
Drupal の Form API ( Web フォーム処理のための API )には Ajax のための機能がデフォルトで備わっています。それを使うとかんたんに Ajax 処理を実現することができます。 今回、この機能を使用してAjax処理をしていますが、60秒を超えるとタイムアウトになりAjaxエラーになりました。対応方法を調べたので今後のためにここに残しておきます。
投稿日: 2023-12-17
Drupalはさまざまな方法でAjaxが利用できる仕組みがあります。一番簡単なのはフォームを利用する方法(フロントエンド側のコードを意識することなくAJAXが利用できる)ですが、ここではフォームを使わないでControllerからjQueryのAjaxを使用してコールバック関数にPOSTデータを連携する方法を紹介しています。
投稿日: 2023-12-17
Drupal 9.3では、DrupalエンティティAPIにバンドルクラスというとてもクールな開発者向けの新機能が追加されました。エンティティバンドルは基本的にビジネスオブジェクトです。この機能により、必要なビジネスロジックをカプセル化した独自のクラスを宣言できるようになりました。これがどのように機能し、どのような変更点があるのかを簡単に説明します。
投稿日: 2023-12-16
Drupalはデータベースの設定情報を簡単にエクスポートする機能が備わっています。この機能を利用すると、Gitなどソースと一緒にデータベースの設定情報をバージョン管理することもできますが、再利用する場合は削除する必要があります。ここでは一括で削除するコマンドを紹介します。
投稿日: 2023-12-16
ウェブ上で時間のかかる処理を行うと504タイムアウトエラーが発生して処理が中断することがよくあります。 Drupalではバッチ処理を簡単に実装することができますのでその方法を紹介します。 ここでは、開発者がモジュール開発を行う際どのようなコードを書けば良いのかの例を示すDrupalのコントリビュートモジュールを使用して説明します。
投稿日: 2023-12-16
設計の良し悪しが製造から保守まですべての工程に影響します。設計の中でも重要なのが技術を理解して対象の案件にあったベストプラクティスを適用することです。Drupalではコントリビュートモジュールでコードの理解のためのサンプルコードが用意されていますので今回はそちらをご紹介します。
投稿日: 2023-12-14
Ubuntuをインストールしたらまず最初に設定とおすすめパッケージ10選です。毎回インストールするたびに設定や必要なパッケージを忘れるので備忘録としてまとめました。
投稿日: 2023-12-14
phpアプリの開発をしているとUbuntuのネイティブ環境がほしくなります。しかしWindowsが使えないんとMicrosoftOfficeや使い勝手の良いWindowsアプリが使えないと困ることもあります。そこでストレージ容量が大きめのWindowsPCにUbuntuをインストールしてデュアルOSのデュアルブートを構築します。
投稿日: 2023-12-12
DrupalをレンタルサーバーLOLIPOPにDrupalをインストールしてみました。確かに要件的には満たしていそうですが、ルート権限を持たないためDrushなどバックエンド側のコマンドやパーミッションの設定に疑問を感じてやっていませんでした。レンタルサーバーでも動作できるのであれば、コストパフォーマンス的に最高です。
投稿日: 2023-12-12
Drupalのセキュリティパッチは頻繁にアップデートされていますので、公開されているサイトは常に最新版にしておく必要があります。ここでは、バックエンド側で実施する手順を説明しています。
投稿日: 2023-12-10
開発者にとって、仕事をする上で大切なことのひとつに、コーディング規約があります。複数人の開発者がプロジェクトに携わる場合にはコードをシェアできるようにあらかじめコーディング規約を取り決めて作業するのが、プロジェクトを成功に導く鍵になります。ここでは、Drupalのコーディング規約を日本語に翻訳してご紹介します。
投稿日: 2023-12-10
最近ではWindowsでもWSL2でかんたんにLinux環境を構築できますが、OSがLinuxにした場合は速さが格段に違います。今回は、ローカルマシンにUbuntuをインストールした後、ローカル環境を作成するためのDockerツールの一つであるLandoの環境を構築する手順です。メモ代わりにここに残しておきます。
投稿日: 2023-12-09
近年のAIと自然言語処理技術の進化は著しいものがあり、その中でも「AutoGPT」は特に注目されています。AutoGPTは、OpenAIが提供するGPT-4を基盤としたオープンソースのAIアプリケーションです。ここではChatGPTとAutoGPTのメリットとデメリットを比較した記事を紹介します。
投稿日: 2023-12-08
自社または制作会社でWebサイトを制作したいときには、CMSを利用して工数を軽減することをおすすめします。CMSを活用することで、Webサイトの構築・運用が楽になります。本記事では、代表的なCMSを紹介しています。
投稿日: 2023-12-02
技術系ブログの執筆が大変で困っている方に朗報です。AIモデルの一つであるCHATGPTを使ってブログ記事を作成できるようになりました。CHATGPTは自然言語処理の技術を応用したもので、人間のように文章を生成することができます。本記事では、CHATGPTを使用してブログ記事を作成するメリットと方法についてご紹介します。【AIが執筆しました】
投稿日: 2023-10-07
技術系ブログの執筆が大変で困っている方に朗報です。AIモデルの一つであるCHATGPTを使ってブログ記事を作成できるようになりました。CHATGPTは自然言語処理の技術を応用したもので、人間のように文章を生成することができます。記事では、CHATGPTを使用してブログ記事を作成するメリットや方法についてご紹介します。【AIが執筆しました】
投稿日: 2023-09-28
OpenAIが提供する人工知能のAPIです。 このOpenAI APIにより、開発者は自身で開発するアプリケーションに人工知能を利用することが可能となります。ここではOpenAIとはなにか?またなにができるかについてご紹介しています。
投稿日: 2023-09-28
ChatGPTはOPENAIによって開発され、2022年11月に公開されたAIチャットサービスです。当サービスはOPENAIのChatGPT APIを利用してサービスを提供しています。ここでは、本家ChatGPTの利用方法について解説しています。
当サービスに関するご意見ご要望がございましたらお問い合わせフォームからお気軽にご連絡ください。