開発メモ

開発用のメモです。

CMSのスキーマのメニューアイテムを動的に生成する。 その2(バッチ処理部分)

処理実行

cd /var/www/vhost/cms.example.com/public_html/cmsdesigner/config
php creator.php  2> /dev/null
cat schema/infomation/infomation.schema.xml
<?php

if ($dir = opendir("schema_creator")) {
        while ( ($file = readdir($dir)) !== false ) {
                switch($file) {
                        case '.':
                        case '..':
                                break;
                        default:
                                $creator = 'schema_creator/' . basename($file);
                                $outfile = 'schema/'. basename($file,'.schema.xml.php') .'/'. basename($file, ".php");

                                $output = array();
                                $stat   = null;

                                exec('php ' . $creator, $output, $stat);
                                if ($stat == 0) {
                                        // ファイルの一致チェック START
                                        $output2 = array();
                                        $stat2   = null;
                                        exec('cat ' . $outfile, $output2, $stat2);
                                        if (join(":",$output) == join(":",$output2)) {
                                                break;
                                        }
                                        // ファイルの一致チェック END
                                        $fh = fopen($outfile, 'w');
                                        $output = join(PHP_EOL, $output );
                                        fwrite($fh, $output);
                                        fclose($fh);
                                }
                }
        }

}

ディレクトリ構成

cmsdesigner
├config
│├schema
││├infomation.schema.xml
││:
│├schema_creator
││├infomation.schema.xml.php ( schema名に php 付与 )
││:
Twitter: @asahina_alice