<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wws.jp/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wws.jp/feed.php">
        <title>Wiki and Web Service devops:php</title>
        <description></description>
        <link>https://wws.jp/</link>
        <image rdf:resource="https://wws.jp/_media/favicon.ico" />
       <dc:date>2026-05-14T08:23:42+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wws.jp/devops/php/composer_bin?rev=1734489134&amp;do=diff"/>
                <rdf:li rdf:resource="https://wws.jp/devops/php/composer?rev=1734489134&amp;do=diff"/>
                <rdf:li rdf:resource="https://wws.jp/devops/php/config_util?rev=1734489134&amp;do=diff"/>
                <rdf:li rdf:resource="https://wws.jp/devops/php/exec?rev=1734489134&amp;do=diff"/>
                <rdf:li rdf:resource="https://wws.jp/devops/php/logger_implementation?rev=1734489134&amp;do=diff"/>
                <rdf:li rdf:resource="https://wws.jp/devops/php/phinx_db_migration?rev=1734489134&amp;do=diff"/>
                <rdf:li rdf:resource="https://wws.jp/devops/php/preg_match?rev=1734489134&amp;do=diff"/>
                <rdf:li rdf:resource="https://wws.jp/devops/php/realpath?rev=1734489134&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wws.jp/_media/favicon.ico">
        <title>Wiki and Web Service</title>
        <link>https://wws.jp/</link>
        <url>https://wws.jp/_media/favicon.ico</url>
    </image>
    <item rdf:about="https://wws.jp/devops/php/composer_bin?rev=1734489134&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-18T02:32:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Composer bin スクリプトの作り方</title>
        <link>https://wws.jp/devops/php/composer_bin?rev=1734489134&amp;do=diff</link>
        <description>php composer autoload

Composer bin スクリプトの作り方

composer をインストールすると、パッケージに含まれる CLI ベースの補助ツールのシンボリックリンクが、自動的に vendor/bin に作られます。
この補助ツールを自分で作る方法について、いろいろと罠にハマったので記録しておきます。</description>
    </item>
    <item rdf:about="https://wws.jp/devops/php/composer?rev=1734489134&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-18T02:32:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PHP composer で自作ライブラリ管理</title>
        <link>https://wws.jp/devops/php/composer?rev=1734489134&amp;do=diff</link>
        <description>PHP composer で自作ライブラリ管理

ソースコードを沢山書いていくと、ちょっとした便利ライブラリ的なコードを再利用したくなり、その整理をどうするか？という問題が出てきます。

その昔は、開発者は自分のハードディスクに保存しておき、利用の度にファイルコピーといった再利用方法をとっていたと思います。</description>
    </item>
    <item rdf:about="https://wws.jp/devops/php/config_util?rev=1734489134&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-18T02:32:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PHP で実装するコンフィグツール</title>
        <link>https://wws.jp/devops/php/config_util?rev=1734489134&amp;do=diff</link>
        <description>PHP で実装するコンフィグツール

ソースコードには含めたくない設定内容を外部ファイルから読み込みたい、というケースはあらゆるアプリケーションで発生します。
今までも、各種 PHP スクリプトで活用できる Config ツールを書いてきており、その内容は単一の config.json ファイルを読み込み、すべての設定をスタティックで保持し、値もスタティック関数で読み込む、という単純なものでした。…</description>
    </item>
    <item rdf:about="https://wws.jp/devops/php/exec?rev=1734489134&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-18T02:32:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PHP からコマンド実行</title>
        <link>https://wws.jp/devops/php/exec?rev=1734489134&amp;do=diff</link>
        <description>PHP からコマンド実行

&lt;https://www.php.net/manual/ja/function.exec.php&gt;

こんな風に書くのがいいのではないか？



exec() が false を返すパターンは今のところ見つかっていない。。。

実行後の戻り値は $ret で見ることになり、通常成功時は 0 が帰るはず（呼び出されるスクリプトをそう作成しておくべき）なので、帰らなかった場合はログ出力などのエラー処理を行う。ちなみに command not found は以下の様になった。…</description>
    </item>
    <item rdf:about="https://wws.jp/devops/php/logger_implementation?rev=1734489134&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-18T02:32:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PHP PSR-3 でロガーを最短実装！</title>
        <link>https://wws.jp/devops/php/logger_implementation?rev=1734489134&amp;do=diff</link>
        <description>PHP PSR-3 でロガーを最短実装！

いままで、あるクラスにログ出力を実装する場合、手動で LoggerInterface を読み込む処理を書いていました。
ところが最近、sabre/dav という OSS WebDAV サーバープロダクトのソースコードを読んでいると、LoggerAwareInterface や LoggerAwareTrait など、自分では普段使用しない単語が飛び込んできました。そしてコードを読み進めるうちに、その実装が正しいロギング実装であることに気づいてしまったのでした。。。…</description>
    </item>
    <item rdf:about="https://wws.jp/devops/php/phinx_db_migration?rev=1734489134&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-18T02:32:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PHP Phinx でデータベースマイグレーション</title>
        <link>https://wws.jp/devops/php/phinx_db_migration?rev=1734489134&amp;do=diff</link>
        <description>php phinx composer

PHP Phinx でデータベースマイグレーション

公式

公式のページからドキュメントは CakePHP のドキュメントサイトに飛びます。CakePHP のドキュメントサイトは日本語訳を表示することができます。</description>
    </item>
    <item rdf:about="https://wws.jp/devops/php/preg_match?rev=1734489134&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-18T02:32:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PHP preg_match() でハマり道</title>
        <link>https://wws.jp/devops/php/preg_match?rev=1734489134&amp;do=diff</link>
        <description>PHP preg_match() でハマり道

実際にはそんなにハマってはいないのですが。。。

	*  パス名内の文字を抽出する場合は、/ を | などに書き換える。
	*  パターンにマッチした文字を抽出する場合、() だけでなく、その中に [] を入れる。</description>
    </item>
    <item rdf:about="https://wws.jp/devops/php/realpath?rev=1734489134&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-18T02:32:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PHP realpath() でハマり道</title>
        <link>https://wws.jp/devops/php/realpath?rev=1734489134&amp;do=diff</link>
        <description>PHP realpath() でハマり道

お客様ご指定の環境 Apache2.4 + PHP8.0.14 にて realpath() 挙動の沼にハマったのでご紹介。

Apache 経由でのリクエストにおいて、実在するパスを realpath(“/var/tmp/hoge”) とすると、空文字が帰ってくる。</description>
    </item>
</rdf:RDF>
