| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

PHP

提供: MyMemoWiki
ナビゲーションに移動 検索に移動

| FuelPHP | XAMPP |

PHP

インストール


Ubuntuへのインストール


Apacheと同時にインストール
$ sudo apt install php libapache2-mod-php

CentOSへのインストール


https://weblabo.oscasierra.net/centos7-php71-install/

# yum -y install epel-release
# yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm  
# yum -y install httpd php74 php74-php 
# systemctl enable httpd.service
# systemctl start httpd.service
# vi /var/www/html/info.php
<?php
phpinfo();

対話形式(REPL)


  • Ubuntuでは、cli、readllineのインストールが必要
$ sudo apt install php-cli php-readline
  • 実行
$ sudo php -a
Interactive mode enabled

php > 
  • ctrl+k : clear

接続


phpMyAdmin

ツール


PHP Archive (PHAR)


必要な依存コンポーネントがすべて (オプションのコンポーネントの一部も含めて) ひとつのファイルにまとめられています。

Composer


  • https://getcomposer.org/
  • PHPプログラミング言語向けのソフトウェアおよび必要なライブラリの依存関係を管理する標準形式を提供するアプリケーションレベルのパッケージ管理システム*
  • composer.jsonがあるディレクトリ上でcomposer installとするだけで、依存しているライブラリを取得。
  • composer.lockはcomposer.jsonにあるライブラリを取得するのに、実際にどのファイルを入手したかをまとめたもの

PHPUnit


マニュアル

  • HPプログラミング言語用の単体テストを行うためのフレームワークである。 SUnitを起源としてJUnitで一般的になった、xUnitの設計を元にした単体テストのフレームワーク
  • PHPUnitはプロジェクト単位でローカルな依存として管理すべき
  • Composerを使っているならそのプロジェクトで必要とするPHPUnitのバージョンを composer.json に書く
Composerを利用したインストール
  • composer.json に追記
  • composer update でインストール
$ php composer.phar require --dev phpunit/phpunit 9.3
  • composer.json の追記内容
$ git diff composer.json
diff --git a/composer.json b/composer.json
index 61a9404..e7a9b8a 100644
--- a/composer.json
+++ b/composer.json
@@ -16,7 +16,8 @@
         "fuelphp/upload": "2.0.6"
     },
     "require-dev": {
-        "fuel/docs": "1.8.*"
+        "fuel/docs": "1.8.*",
+        "phpunit/phpunit": "9.3"
     },
     "suggest": {
         "dwoo/dwoo" : "Allow Dwoo templating with the Parser package",
  • version確認
$  fuel/vendor/bin/phpunit --version
PHPUnit 9.3.0 by Sebastian Bergmann and contributors.
FuelPHP oilコマンドから利用可能にする
$ cp fuel/packages/oil/config/oil.php fuel/app/config/
$ vi fuel/app/config/oil.php 
        :
               'autoload_path' => 'PHPUnit/Autoload.php' ,
                'binary_path'   => VENDORPATH.'bin/phpunit' ,

プログラミング

基本


  • <?php 〜 ?> に処理を記述
  • 文末はセミコロン
  • 命令文の大文字小文字は区別しない
  • コメント
    • 単一行: // , #
    • 複数行: /* 〜 */

デバッグ

  • print_r() 配列、オブジェクトなどを整形し出力
  • var_dump() 変数の情報を出力

比較演算子


演算子 意味
== 値が等しい
=== 値およびデータ型が等しい
!=, <> 値が等しくない
!== 値またはデータ型が等しくない
< 小なり
> 大なり
<= 小なりイコール
>= 大なりイコール
<=> 左辺が右辺より小さい場合には、-1、一致する場合には、0、左辺が右辺より大きい場合には1
?: 条件式?真の場合:偽の場合
?? 左辺がnullでなければその値、nullなら右辺、双方nullならnull

変数


  • $名前形式
  • 名前の先頭は英字か_
  • 大文字/小文字は区別される

可変変数


  • 先頭に$を2つ重ねることで、変数の内容を変数名によって決定する
  • 可変部分を{}で括ることもできる
<?php
    $name = 'yagi';
    $age = 49;

    $x = 'name';
    echo $$x;
    $x = 'age';
    echo ${$x};
?>
  • 結果
yagi49

定数


  • const 定数名 = 値
  • 先頭に$は不要
  • 全て大文字で命名

定義済み定数

定数 意味
__FILE__ 実行中ファイル絶対パス
__DIR__ 実行中ファイルのディレクトリ
__LINE__ 実行中の行番号
__FUNCTION__ 実行中の関数
__CLASS__ 実行中のクラス
__METHOD__ 実行中のメソッド
__TRAIT__ 実行中のトレイト
__NAMESPACE__ 実行中の名前空間
DIRECTORY_SEPARATOR ディレクトリ区切り文字
PATH_SEPARATOR パス区切り文字
PHP_VERSION PHPバージョン

データ型


データ型名称 データ型 概要
論理 bool,boolean true/false

リテラルは大小文字を区別しない。 空文字、0という文字列、0数値、空の配列、null を自動的にfalseとみなす

整数 int,integer 16進(0x)、8進(0)
浮動小数点数 float,double,real
文字列 string リテラルは、引用符または二重引用符で囲む。\でエスケープ。

二重引用符で囲むと、\t や ${変数} を展開する。(引用符では展開しない)

配列 array
オブジェクト object
リソース resource 外部リソース参照
NULL null

キャスト

  • (データ型) 値

ヒアドキュメント


  • <<<デリミタ ー デリミタ;までを文字列リテラルとみなす
  • デリミタをEODとした例
$msg = <<<EOD
this
is
message.
EOD;

配列


  • 生成
  • print_r は配列はオブジェクトなどを見やすく出力
$nums = [1,2,3];
print_r($nums);
多次元配列
$data = [
    [1,2,3],
    [4,5,6],
    [7,8,9]
];

連想配列


$dict = [
    1 => 'a',
    2 => 'b',
    3 => 'c'
];
print_r($dict);
$dict[1] = 'A';
print_r($dict);
  • KEYが整数である連想配列と配列に違いはない
  • 配列やオブジェクトをKEYにできない

配列の演算


  • + : 左の配列に存在しないKEYを右の配列から追加する。
php > $d1 = [1=>1,2=>2,3=>3];
php > $d2 = [3=>4,4=>5,6=>7];
php > print_r($d1 + $d2);
Array
(
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 5
    [6] => 7
)

Tips

Visual Studio Code拡張