PHP7初級試験に受かってきた

記事タイトルとURLをコピーする

1月ほど前にPHP7技術者認定初級試験に合格していました。

受験理由

以前ウェブ・セキュリティ基礎試験(通称:徳丸基礎試験)を受験しました。

blog.serverworks.co.jp

その上級のウェブ・セキュリティ実務知識試験(通称:徳丸実務知識試験)というのが今後実施されるそうです。

こちらも受験してみたいと思いましたが、 推奨前提知識:PHP7技術者認定初級試験合格レベルのPHPの知識 と記載があります。

私のPHPに対する印象

  • Webアプリのセキュリティに関するサンプルコードはPHPが多い(気がする)
  • WebアプリのPHPのシェアは現在でも高い(WordPressが多い?)
  • 簡単なWebアプリを作るならPHPは便利(かもしれない)

一般教養レベルとして、簡単なPHPが読めると長い人生で役に立つこともあるかなと、学習してみることにしました。

学習方法

私はずっとインフラエンジニア的な感じですが、RubyやPythonはチョットわかります。 達人の言う「チョットデキル」ではなく本当にチョットですが、PHP7初級試験の範囲は、他の言語では、ほぼ理解済みと言えるでしょう。

なので、変数、関数、オブジェクト、クラス、if文、ループなどを丁寧に最初から学習し直す気はありませんでした。

ということで、いきなり公式問題集(黒本)やりました。

www.amazon.co.jp

まずは適当に解いて、解説をしっかり読んで理解を深めます。 不明点や少し深掘りしたいところなどは、ググります。

また、ところどころで実際に動かしてみました。 php -a でインタラクティブシェルが起動するので、ローカルマシンやAWS Cloud9などで動作確認してみました。

~$ php -a
Interactive shell

php > var1 = 10;

Parse error: syntax error, unexpected '=' in php shell code on line 1

php > $var1 = 10;
php > $var2 = 3;
php > print $var1 + $var2;
13

学習の後半になると、Webアプリとして起動させたり、データベースと連携させたりする必要がでてきます。

CLIからphp -S 127.0.0.1:8080 -t ./html と簡単にWebアプリとして起動できますが、私はDocker ComposeでPHPコンテナとMySQLコンテナを作って試していたようです。1ヶ月前なのでもう記憶が怪しいですが、手元に残っていた設定は以下の通りです。

Dockerfile

FROM php:7.3-apache
RUN docker-php-ext-install pdo_mysql

docker-compose.yml

version: '3'
services:
  db:
    image: mysql:5.7
    volumes:
      - ./mysql:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=secret
  php:
    build: .
    volumes:
      - ./html:/var/www/html
    ports:
      - 8080:80
    depends_on:

起動

study-php$ docker-compose up -d
Creating network "study-php_default" with the default driver
Building php
Step 1/2 : FROM php:7.3-apache
 ---> 285f9853d978
Step 2/2 : RUN docker-php-ext-install pdo_mysql
 ---> Using cache
 ---> 6a08e61e1868

Successfully built 6a08e61e1868
Successfully tagged study-php_php:latest
WARNING: Image for service php was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating study-php_db_1 ... done
Creating study-php_php_1 ... done

そんなことをやりつつ、適当なタイミングで認定模擬試験も受けました。無料です。

感想

  • 公式問題集(黒本)を中心にやりましょう。
  • 変数スコープなどは、やはり言語ごとに微妙に異なっているものですね。
  • セッションとかクッキーとかWebアプリで重要な機能も試験範囲なのは良かった。
  • プリペアードステートメントを意識的に書くという体験ができて良かった。
  • 使わないと1ヶ月でだいぶ忘れる。

渡辺 信秀 (記事一覧)