drupaldrupalを使い始める


備考

DrupalはPHPで構築されたオープンソースのコンテンツ管理システムです。 Drupalは、柔軟性が高く、強力であるように設計されており、ブログやパンフレットスタイルのサイトから複雑な電子商取引プラットフォームまで幅広いサイトを構築することができます。コミュニティ駆動のモジュラーアーキテクチャにより、Drupalは、大規模で複雑なプロジェクトの開発をスピードアップするためのコア機能を拡張するツールを提供することができます。

現在サポートされているDrupal:7と8の2つのバージョンがあります。Drupal 8は、最新の開発構造を提供するために、Symfonyフレームワークや他の多くのサードパーティのライブラリから構成されています。

Drupalのコンセプト

バージョン

Release Date
 
バージョン発売日
8.2.4 2016年12月7日
7.53 2016年12月7日
6.38 (サポートされていない) 2016年2月24日
5.23 (サポートされていない) 2010年8月11日

エンティティタイプ

以前のバージョンのDrupalでは、フィールドシステムはコンテンツタイプでのみ使用されていました。さて、Entity APIのおかげで、コメントのような他のものにフィールドを追加することができます。フィールド可能なエンティティは、Drupalを著しく柔軟にします。エンティティ型は、フィールドをグループ化するための便利な抽象化です。以下は、Drupalコアのエンティティタイプです。

  • ノード(コンテンツ)
  • コメント
  • ファイル
  • 分類用語
  • タクソノミー語彙
  • ユーザー

上記のオプションがあなたのニーズに合わない新しい種類のエンティティタイプを構築することもできます。

バンドル

バンドルは、フィールドを添付できるエンティティタイプの実装です。バンドルはエンティティタイプのサブタイプと見なすことができます。たとえば、コンテンツノード(エンティティタイプ)では、記事、ブログ投稿、製品などのバンドル(サブタイプ)を生成できます。ただし、すべてのエンティティタイプにバンドルがあるわけではありません。たとえば、ユーザーには個別のバンドル(サブタイプ)がありません。バンドルを許可するエンティティタイプでは、必要な数のバンドル(サブタイプ)を作成できます。次に、フィールドシステムを使用して、各バンドルに異なるフィールドを追加することができます。例としては、基本ページのファイルダウンロードフィールドと記事のサブタイトルフィールドがあります。

フィールド

フィールドは再利用可能なコンテンツです。専門用語では、各フィールドは、編集用のカスタムバリデーターとウィジェット、および表示用フォーマッターを備えた基本データ型です。開発者ガイドでDrupal 7 Fields APIの使用方法をさらに読むことができます

エンティティに関連して知っておくべき重要なことは、データを整理するのに役立つようにフィールドをバンドル(またはエンティティタイプ)のいずれかに追加できることです。

たとえば、構造化されていないテキストフィールドを持つコンテンツタイプを作成し、HTMLを使用して、その一部(要約セクションや価格など)を構成します。そうすれば、これらがどのように表示されるかを制御したり、さまざまな種類の関連コンテンツ間を接続したりすることがより困難になります。

これは、フィールドの使用が不可欠です。 Long Text型の概要フィールドと、Decimal型の価格フィールドを作成することができます。

エンティティ

エンティティは、コメント、タクソミノミー用語またはユーザプロファイル、またはブログ記事、記事、製品などのバンドルのような特定のエンティティタイプの1つのインスタンスになります。

entity_loadを使用して任意のエンティティをロードできます。ただし、コアには保存または削除機能はありませんが、 Entity APIモジュールのおかげで欠落部分が追加されます(entity_create()、entity_save()、entity_delete()、entity_view()およびentity_access())。

これをオブジェクト指向の設計/プログラミング用語に置き換える...

あなたがOOD / Pのバックグラウンドから来て、これらの主要な概念が何であるかをよりよく理解しようとするなら、次の推奨されるマッピングが役立つかもしれません(純粋主義者の観点からは厳密には真実ではありません)。

  • エンティティタイプ基本クラスです
  • バンドル拡張クラスです
  • フィールドは、 クラスメンバプロパティ変数、またはフィールドインスタンスです (名前の設定に応じて異なります)
  • エンティティは、 基本 クラスまたは拡張クラスの オブジェクトまたはインスタンスです

これらの4つのOOD / Pの概念は、直列化可能である(つまり、データベースやファイルに保存される)という点で特別です。シリアライゼーションはEntity APIを介して行われます。

DrupalコンソールでのDrupal 8のインストール

Drupal Console

Drupalのための新しいCLI。ボイラープレートコードを生成し、Drupalと対話してデバッグするツール。

まず、Drupal Consoleをインストールする必要があります。

この時間だけでなく、将来のインストールのためにもDrupal Consoleが必要です。

# Run this in your terminal to get the latest project version:
curl https://drupalconsole.com/installer -L -o drupal.phar

# Or if you don't have curl:
php -r "readfile('https://drupalconsole.com/installer');" > drupal.phar

# Accessing from anywhere on your system:
mv drupal.phar /usr/local/bin/drupal

# Apply executable permissions on the downloaded file:
chmod +x /usr/local/bin/drupal

# Copy configuration files to user home directory:
drupal init --override

# Check and validate system requirements
drupal check
 

drupal list を呼び出して、利用可能なすべてのコマンドを表示することができます。

次のステップでは、Drupalのソースコードをダウンロードします

drupal site:new
 

コンソールはDrupalをダウンロードするフォルダを選択するように促します。次のステップでは、ダウンロードするDrupalのバージョンを選択するよう求められます。私は最後のものを選択することをお勧めします。

だから、Drupalがダウンロードされたら、それをインストールする必要があります。

drupal site:install
 

いくつかの簡単なステップの後、あなたのDrupalサイトは準備が整います。

この方法論では、Drupalの新規インストールでは、コマンドラインから5〜7分かかることがあります。

DrushでDrupalをインストールする

drush dl drupal --drupal-project-rename=example
cd example
drush site-install standard --db-url='mysql://[db_user]:[db_pass]@localhost/[db_name]' --site-name=Example