克里斯托斯80 / optionr2
此包已被弃用且不再维护。作者建议使用kristos80/opton包代替。
Optionr是一个简单的辅助工具,使得从一组选项中获取一个选项变得极其容易,无需进行所有那些'isset'和'array_key_exists'比较。
v3.3.0
2020-02-06 09:23 UTC
Requires
- petrknap/php-singleton: ^1.0
README
安装
使用composer安装最新版本。
$ composer require kristos80/optionr2
Optionr
Optionr是一个简单的辅助工具,具有一个单独的方法->get(),使得从一组选项中获取一个选项变得极其容易
/* * @param string|array|object $name * @param array|object $pool * @param mixed $default * @param bool $sensitive * @param bool|array $acceptedValues * @return mixed */ public function get($name = '', $pool = array(), $default = NULL, $sensitive = FALSE, $acceptedValues = FALSE)
版本2.0.0更新
类现在是可调用的,因此所有示例都可以重写,无需使用->get()方法
当类在另一个类中使用时,类应该用()
包裹
($this->options)($name,$pool)
见这里
版本3.0.0更新
get方法现在可以接受一个配置数组/对象作为单个参数。请看示例
示例
示例包括但不限于
require_once 'vendor/autoload.php'; $options = new \Kristos80\Optionr2\Optionr(); # Example 1 ================================ $example1LookingForVar = 'index1'; $example1Pool = array( 'index1' => 'valueOfIndex1', 'index2' => 'valueOfIndex2', ); $example1Result1 = $options->get($example1LookingForVar, $example1Pool); $example1Result2 = $options->get(array( 'name' => $example1LookingForVar, 'pool' => $example1Pool, )); # Example 1 print ================================ var_dump($example1Result1); var_dump($example1Result2); var_dump($example1Result1 === $example1Result2); echo "\r\n"; # Example 2 ================================ $example2LookingForVar = array( 'index2', 'index1' ); $example2Pool = new \stdClass(); $example2Pool->index1 = 'valueOfIndex1'; $example2Pool->index2 = 'valueOfIndex2'; $example2Result = $options->get(array( 'name' => $example2LookingForVar, 'pool' => $example2Pool, )); # Example 2 print ================================ var_dump($example2Result); echo "\r\n"; # Example 3 ================================ $example3LookingForVar = array( 'index2', 'index1', 'index0', ); $example3Pool = new \stdClass(); $example3Pool->index4 = 'valueOfIndex4'; $example3Pool->index5 = 'valueOfIndex5'; $example3Pool->index6 = 'valueOfIndex6'; $example3Result = $options->get(array( 'name' => $example3LookingForVar, 'pool' => $example3Pool, # default can be passed as defaultValue as well ;) === 'defaultValue' => 'defaultValue' 'default' => 'defaultValue', )); # Example 3 print ================================ var_dump($example3Result); echo "\r\n"; # Example 4 ================================ $example4LookingForVar = 'index4'; $example4Pool = new \stdClass(); $example4Pool->index4 = 'valueOfIndex4'; $example4DefaultValue = 'anyOtherValueButNotIndex4'; $example4SensitiveSearch = FALSE; $example4AcceptedValues = array( 'valueOfIndex4IsNotAllowed', 'anyOtherValueButNotIndex4', ); $example4Result = $options->get($example4LookingForVar, $example4Pool, $example4DefaultValue, $example4SensitiveSearch, $example4AcceptedValues); # Example 4 print ================================ var_dump($example4Result); echo "\r\n"; # Example 5 ================================ $example5LookingForVar = 'Index4'; $example5Pool = array( 'index4' => 'valueOfIndex4' ); $example5DefaultValue = NULL; $example5SensitiveSearch = TRUE; $example5Result = $options->get($example5LookingForVar, $example5Pool, $example5DefaultValue, $example5SensitiveSearch); # Example 5 print ================================ var_dump($example5Result); echo "\r\n"; /** Prints ================================ string(13) "valueOfIndex1" string(13) "valueOfIndex1" bool(true) string(13) "valueOfIndex2" string(12) "defaultValue" string(25) "anyOtherValueButNotIndex4" NULL ================================ **/