Beispiel #1
0
 /**
  * RESTパラメータに合わせたパスを取得します。
  *
  * @param string $entry RESTエントリポイント。
  * @return string パス。
  */
 private static function getPath($entry)
 {
     $cwd = Environment::getCurrentDirectory();
     $path = "{$cwd}/rest/{$entry}.php";
     $exists = $entry === Constants::REST_ERROR || file_exists($path);
     return $exists ? $path : self::getPath(Constants::REST_ERROR);
 }
Beispiel #2
0
 /**
  * メッセージIDを取得します。
  *
  * @param IContext $storage コンテキストに備えられているワーク領域。
  * @return integer メッセージID。
  */
 private static function innerGetMessageId(array $storage = null)
 {
     if (!is_null($storage) && isset($storage[Constants::DATA_MESSAGE_ID])) {
         return $storage[Constants::DATA_MESSAGE_ID];
     }
     $rest = Environment::getRestParams();
     if (count($rest) >= 2 && $rest[0] == 'error' && is_numeric($rest[1])) {
         return intval($rest[1]);
     }
     return self::DEFAULT_STATUS;
 }
 /** カレントディレクトリ値を改変する */
 protected function setCurrentDirectory(array &$world, array $arguments)
 {
     $this->assertEquals(1, count($arguments), '引数は 1 つ必要');
     Environment::setCurrentDirectory(getcwd() . $arguments[0]);
 }
Beispiel #4
0
 /** 存在しないカレントディレクトリ値は設定できない */
 protected function errorIfSetInvalidDirectory(array &$world, array $arguments)
 {
     $this->assertEquals(1, count($arguments), '引数は 1 つ必要');
     $callback = function () use($world, $arguments) {
         Environment::setCurrentDirectory($arguments[0]);
     };
     $this->assertException($callback, 'InvalidArgumentException', "The path does not exist. :{$arguments[0]}");
 }
Beispiel #5
0
 /**
  * XMLを作成します。
  *
  * @param string $message ステータス メッセージ。
  * @param string $query 初期状態の入力文。
  * @param bool $result 処理に成功したかどうか。
  * @param bool $dynamic 動的ページかどうか
  * (検索エンジンのインデックスを認めるかどうか)
  * @param string $language 言語。
  * @return DOMDocument XML DOMドキュメント。
  */
 public function createXml($message, $query, $result, $dynamic, $language = 'en')
 {
     $attributes = array('xml:lang' => $language, 'root' => Environment::getBasePath(), 'query' => $query, 'result' => $result ? 'true' : 'false', 'message' => $message, 'dynamic' => $dynamic ? 'true' : 'false');
     return Output::createXml($attributes);
 }
Beispiel #6
0
        $trimmed = preg_replace('/(^\\/|\\/$)/', '', $uri);
        $splited = empty($trimmed) ? array() : explode('/', $trimmed);
        return array_map('self::splitMapper', $splited);
    }
    /**
     * 配列からカンマ区切り文字列を探し、分割するためのコールバックです。
     *
     * @param string $item 分割対象文字列。
     * @return mixed 分割された配列。分割不能な場合、引数をそのまま返します。
     * @SuppressWarnings(PHPMD)
     */
    private static function splitMapper($item)
    {
        $result = explode(',', $item);
        return count($result) === 1 ? $result[0] : $result;
    }
    /**
     * 環境変数から基底パスを抽出・取得します。
     *
     * @param array $params 環境変数値を格納した連想配列。
     * @return string 基底パス文字列。環境変数から取得できなかった場合、"."。
     */
    private static function getBasePathFromEnvironment(array $params)
    {
        $path = isset($params[self::PHP_PATH]) ? $params[self::PHP_PATH] : '';
        $info = pathinfo($path);
        return isset($info['dirname']) ? $info['dirname'] : '.';
    }
}
Environment::initialize();
 /** 環境設定をリセットする */
 protected function resetParams(array &$world, array $arguments)
 {
     Environment::setValues();
 }