public function canGetProperty($name, $checkVars = true) { // property_exists — 检查对象或类是否具有该属性 return method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name); } /** * Returns a value indicating whether a property can be set. * 返回一个值指示是否可以设置一个属性。 * A property is writable if: * * - the class has a setter method associated with the specified name * (in this case, property name is case-insensitive); * - the class has a member variable with the specified name (when `$checkVars` is true); * * 检查对象或类是否能够设置 $name 属性,如果 $checkVars 为 true,则不局限于是否有 setter * * @param string $name the property name * @param boolean $checkVars whether to treat member variables as properties * @return boolean whether the property can be written * @see canGetProperty() */ public function canSetProperty($name, $checkVars = true) { return method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name);//检查对象或类是否能够设置 $name 属性,返回Boolean值。 } /** * Returns a value indicating whether a method is defined. * 返回一个值指示是否定义了一个方法。 * The default implementation is a call to php function `method_exists()`. * You may override this method when you implemented the php magic method `__call()`. * * 检查对象或类是否具有 $name 方法 * * @param string $name the method name * @return boolean whether the method is defined */ public function hasMethod($name) { return method_exists($this, $name);//返回Boolean值。 } }
下面来介绍console/Controller.php
[--param1=value1 --param2 ...] * ~~~ * * * @property string $help This property is read-only. * @property string $helpSummary This property is read-only. * * @author Qiang Xue* @since 2.0 */class Controller extends \yii\base\Controller{ const EXIT_CODE_NORMAL = 0; const EXIT_CODE_ERROR = 1; /** * @var boolean whether to run the command interactively. * 是否运行该命令交互 */ public $interactive = true; /** * @var boolean whether to enable ANSI color in the output. * 是否支持ANSI颜色在输出 * If not set, ANSI color will only be enabled for terminals that support it. * 如果没有设置,ANSI颜色只会支持终端支持它。 */ public $color;