忍者ブログ

STEP UP BLOG

Home > ブログ > php

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

PHPカンファレンス2014に行ってきた

Web開発者は常に最新の情報を抑えておかなければいけません。
勉学を怠ったときから化石化が始まります。
というわけで書くのが遅くなってしまいましたが、
PHPの最新事情を知るべくPHPカンファレンス2014に行ってきました。


お目当てだったセッションはこちら。
「安全なPHPアプリケーションの作り方2014 〜必要最低限のセキュリティ対策はこれだ〜」
徳丸本で有名な徳丸浩氏です。スライドのURLは以下。
特に目新しいことはなく、セキュリティの基本を再確認といったところでしょうか。
PHPのバージョンは常に最新を取り入れていきたいところです。
あと、面白かったセッションは新原雅司氏の
「Ansibleではじめるサーバ作業の自動化」
http://www.slideshare.net/shin1x1/ansible-40576166
でした。
Ansibleは、Chefなどに代表されるインフラ自動化ツールの一種です。
覚えることが少なく簡単に始められるのが特徴だそうです。
私もセッションを聞いただけですが、難しいところは特になさそうで、
ちょっと試してみようかなという気になりました。
その後の予定の関係で途中までしかいられなかったんですが、
こういうイベントには積極的に参加していきたいなと思いました。
他の参加者の感想を調べるとHHVM/Hackのセッションは見たかったなと今更ながら。。
PR

PHPからのコマンドライン引数取得

PHPは主にWebアプリケーションの開発に使われています。
HTTPリクエストを受け取ってHTMLやJSONなどを返すわけです。
ですが、たまにWeb関係ない処理もさせたくなります。
コマンドラインからPHPを使いたくなるときもある(滅多にないけど)。
あるPHPファイルを単純にコマンドラインから実行したい場合は、
$ php some.php
な感じで普通に実行できます。
ここからが本題で、コマンドラインから実行するからにはコマンドライン引数を受け取って処理したい。
ということで、まさにコマンドライン引数を取得するための関数がgetopt()です。
http://php.net/manual/ja/function.getopt.php
array getopt ( string $options [, array $longopts ] )
以下のように使います。
<?php
$options = getopt('xy');
var_dump($options);
$ php some.php -x
array(1) {
    ["x"]=>
    bool(false)
}

$ php some.php -z -y -x
array(2) {
    ["y"]=>
    bool(false)
    ["x"]=>
    bool(false)
}
というようにgetopt()で指定した文字だけ配列として返ってきます。
実際にあるかどうかはisset()でもして確かめればよいでしょう。
第1引数のoptionsでは1文字のオプションとなります(-aとか-bとか)。
値を渡したいときは、
$options = getopt('x:y::');
のようにコロンを1つ(値が必須)、もしくは2つ(値は任意)を付けます。
そうすると、
$ php some.php -x=abc -y
array(2) {
    ["x"]=>
    string(3) "abc"
    ["y"]=>
    bool(false)
}
$ php some.php -xaaa -y=bbb
array(2) {
    ["x"]=>
    string(3) "aaa"
    ["y"]=>
    string(3) "bbb"
}
$ php some.php -x
array(0) {
}
となります。
"="はあってもなくても大丈夫。
最後のは値必須なのに-xだけなので、何も引数取れてないということです。
さらに詳しくはphp.netを。。

PAGE TOP