PHP メモ

## PHPについて
### PHP
- PHPとは動的にWebページを生成することができるサーバーサイドのスクリプト言語です。
- [公式サイト](https://www.php.net/)
- [GitHub](https://github.com/php)

### Composer
- Composerは、PHPプログラミング言語向けのソフトウェアおよび必要なライブラリの依存関係を管理する標準形式を提供するアプリケーションレベルのパッケージ管理シス テムである。
- [公式サイト](https://getcomposer.org/)

### XAMPP/MAMPP 
- XAMPPは、インストールすることで完全無償で利用できるApacheディストリビューションです。
- Webサーバ + データベース + Perl, Php, Rubyを一括してインストールすることができます。
- XAMPPは、Windowsで使用できます。
- MAMPPは、MacOSで使用できます。
- [公式サイト](https://www.apachefriends.org/jp/index.html) 

### PSR-7 
- HTTPメッセージを表すための一般的なインターフェイスと、HTTPメッセージで使用 するURIについて説明します。
- [公式サイト](https://www.php-fig.org/psr/psr-7/)

### Twig
- PHP製のテンプレートエンジンになります。

### php.ini 
- PHPのプログラムを動かすためのプログラムの設定ファイル 
- [公式サイト](https://www.php.net/manual/ja/configuration.file.php)

## PHPフレームワークについて
### Laravel 
- Laravelは自由がかなり効き中,大規模向けのフレームワークです。
- フレームワークとして便利なライブラリやメソッドがたくさんある。 
- 実行コマンド: $ php artisan serve
- [公式サイト](http://laravel.jp/)

### CakePHP
- Cakephpは、Model、Controller、Viewの3層に分類されている。
- Model(モデル):データベースとのやり取りを行う機能 
- View(ビュー):ブラウザへの表示を行う機能 
- Controller(コントローラー):全体の制御を行う機能 
- CakePHPは規約からはみ出ることをやろうとすると柔軟に対応できなかったりする。
- 小規模向けで、少しトリッキーなことをするのには自由が効かない場合がある。
- CTPファイルには、プログラムのユーザーインターフェイスに関する情報が含まれてお り、アプリケーションがユーザーにどのように表示されるかを指定します。 
- find関数はデータ取得に用いられる関数です。
- 実行コマンド: $ bin/cake server
- [公式サイト](https://book.cakephp.org/3/ja/index.html)

### FuelPHP 
- PHP5.3以上を対象に開発された高速で軽量なフレームワークなのです。
- 「規約より設定を重視」の方針で作られており、フレームワークのルールに縛られて開 発作業が制限されるということは少なく、高度なWebアプリケーションの開発に向いてい ると言われています。 
- オートローダーを導入している。(使われるときに必要なクラスだけを読み込むことでメモリ容量を抑え高速に動作します。) 
- HMVCを利用したディレクトリ構造(Hierarchical の和訳は”階層的”です。) 
- 実行コマンド: $ php oil server 
- [公式サイト](http://fuelphp.jp/)

### Symfony 
- symfony は、Web アプリケーションの開発を最適化するためにいくつかの重要な特徴 を通して設計された完全なフレームワークです。
- 初心者のために、symfony は Web アプリケーションのビジネスルール、サーバーのロ ジック、そしてプレゼンテーションのビューを分離します。 
- symfony は複雑な Web アプリケーションの開発期間を短くすることを目的とした多く のツールとクラスを搭載しており、共通のタスクを自動化します。
- 実行コマンド: $ symfony server:start 
- [公式サイト](https://symfony.com/)
- [公式ドキュメント](https://symfony.com/doc/6.1/index.html)

### CodeIgniter
- CodeIgniter はPHPを使用してwebアプリケーションを構築する人向けのツールキットです。
- 一般に必要とされるタスクのための豊富なクラスライブラリだけでなく、ライブラリにアクセスするためのシンプルなインターフェースと論理的構造を提供することにより開発プロジェクトをより加速させます。
- CodeIgniterは与えられたタスクに必要とされるコード量を最小化することで、創造的にプロジェクトに 集中することができます。 
- 本当に最低限の機能のみなので、実際にスケール前提での開発となると、少し力不足ではある。
- 実行コマンド: $ php spark serve
- [公式サイト](https://codeigniter.jp/)
- [公式ドキュメント](https://codeigniter.jp/user_guide/3/)

### Phalcon
- Phalcon(ファルコン)はフルスタックのPHPフレームワークです。 
- C言語を使って実装されていて、高速に動作します。 
- さまざまなベンチマークテストでも、他のフレームワークを大きく凌駕する結果を記録しています。
- メモリの使用量も少なく、拡張性も高いです。
- 習得の難易度は高くはないが、新しいフレームワークなので日本語での情報量は多くは
ありません。
- PhalconはPHP拡張モジュールとしてコンパイルされているため、インストールは他の 従来のPHPフレームワークとは多少異なります。
- Phalconは、Webサーバーのモジュールとしてインストールしてロードする必要があります。
- 実行コマンド
  - $ php -S localhost:8000 -t /public .htrouter.php 
  - $ phalcon serve
- [公式サイト](https://phalcon-docs-ja.readthedocs.io/ja/stable/)

### Slim
- Slim は "マイクロフレームワーク" と呼ばれる、必要最低限の機能のみを提供しその分 速度が出るようにデザインされた軽量なフレームワークです。
- Symfony や Laravel のような、巨大なフルスタックフレームワークとは導入の目的や 用途が異なる。 
- 実行コマンド: $ php -S localhost:8080
- [公式サイト](https://www.slimframework.com/)

### ZEND Framework
- Zend Framework(ゼンドフレームワーク)は、BSDライセンスで提供されているウ ェブアプリケーションフレームワークです。 
- 最大の特徴は、拡張性に優れていること。
- 「コンポーネント」と呼ばれる多数のクラスライブラリが用意されています。 
- 大規模な案件に向いているフレームワークと言えます。 
- 実行コマンド: $ php -S 0.0.0.0:8080 -t public public/index.php
- [公式サイト](https://framework.zend.com/)

### Laminas
- ZEND Frameworkの後継フレームワークです。
- Laminasは基本的なZendFrameworkの機能に一部修正を加えたうえに、最新の機能が追加されています。
- 実行コマンド: $ php -S 0.0.0.0:8080 -t public
- [公式サイト](https://framework.zend.com/manual/1.12/ja/introduction.overview.html)