1月ほど前にPHP7技術者認定初級試験に合格していました。
受験理由
以前ウェブ・セキュリティ基礎試験(通称:徳丸基礎試験)を受験しました。
その上級のウェブ・セキュリティ実務知識試験(通称:徳丸実務知識試験)というのが今後実施されるそうです。
こちらも受験してみたいと思いましたが、 推奨前提知識:PHP7技術者認定初級試験合格レベルのPHPの知識
と記載があります。
私のPHPに対する印象
- Webアプリのセキュリティに関するサンプルコードはPHPが多い(気がする)
- WebアプリのPHPのシェアは現在でも高い(WordPressが多い?)
- 簡単なWebアプリを作るならPHPは便利(かもしれない)
一般教養レベルとして、簡単なPHPが読めると長い人生で役に立つこともあるかなと、学習してみることにしました。
学習方法
私はずっとインフラエンジニア的な感じですが、RubyやPythonはチョットわかります。 達人の言う「チョットデキル」ではなく本当にチョットですが、PHP7初級試験の範囲は、他の言語では、ほぼ理解済みと言えるでしょう。
なので、変数、関数、オブジェクト、クラス、if文、ループなどを丁寧に最初から学習し直す気はありませんでした。
ということで、いきなり公式問題集(黒本)やりました。
まずは適当に解いて、解説をしっかり読んで理解を深めます。 不明点や少し深掘りしたいところなどは、ググります。
また、ところどころで実際に動かしてみました。
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ヶ月でだいぶ忘れる。
渡辺 信秀(記事一覧)
2017年入社 / 地味な内容を丁寧に書きたい