private function _merge(array $array1, array $array2, $recursive = false) { if ($recursive) { return ArrayHelper::merge($array1, $array2); } return array_merge($array1, $array2); }
\rock\base\Alias::setAlias('root', dirname(dirname(dirname(__DIR__)))); \rock\base\Alias::setAlias('rock', \rock\Rock::$dir); \rock\base\Alias::setAlias('vendor', '@root/vendor'); \rock\base\Alias::setAlias('assets', '@root/public/assets'); \rock\base\Alias::setAlias('web', '/assets'); \rock\base\Alias::setAlias('web.img', '/assets/images'); \rock\base\Alias::setAlias('app', '@root/apps'); \rock\base\Alias::setAlias('common', '@app/common'); \rock\base\Alias::setAlias('frontend', '@app/frontend'); \rock\base\Alias::setAlias('backend', '@app/backend'); \rock\base\Alias::setAlias('admin', '@backend'); // namespaces \rock\base\Alias::setAlias('common.ns', 'apps\\common'); \rock\base\Alias::setAlias('frontend.ns', 'apps\\frontend'); \rock\base\Alias::setAlias('backend.ns', 'apps\\backend'); \rock\base\Alias::setAlias('ns', '@common.ns'); // runtime \rock\base\Alias::setAlias('common.runtime', '@common/runtime'); // views \rock\base\Alias::setAlias('common.views', '@common/views'); \rock\base\Alias::setAlias('frontend.views', '@frontend/views'); // media \rock\base\Alias::setAlias('img', '@assets/images'); \rock\base\Alias::setAlias('images', '@img'); // links $request = new \rock\request\Request(); \rock\base\Alias::setAlias('link.home', $request->getHostInfo() ?: 'localhost'); \rock\base\Alias::setAlias('link.ajax', '@link.home/ajax'); \rock\base\Alias::setAlias('email', 'support@' . ($request->getHost() ?: 'localhost')); $config = \rock\helpers\ArrayHelper::merge(require \rock\base\Alias::getAlias('@rock/classes.php'), require __DIR__ . '/classes.php', require __DIR__ . '/controllers.php'); return ['components' => $config];
<?php // Config scope "frontend" $config = (require dirname(dirname(__DIR__)) . '/common/configs/configs.php'); \rock\base\Alias::setAlias('scope', '@frontend'); \rock\base\Alias::setAlias('views', '@frontend/views'); \rock\base\Alias::setAlias('runtime', '@frontend/runtime'); \rock\base\Alias::setAlias('ns', '@frontend.ns'); $request = new \rock\request\Request(); \rock\base\Alias::setAlias('link.home', $request->getHostInfo()); \rock\base\Alias::setAlias('link.ajax', '@link.home/ajax'); \rock\base\Alias::setAlias('email', 'support@' . $request->getHost()); $config['components'] = \rock\helpers\ArrayHelper::merge($config['components'], require __DIR__ . '/classes.php', require __DIR__ . '/models.php', require __DIR__ . '/controllers.php'); return $config;
/** * Generates a form field. * A form field is associated with a model and an attribute. It contains a label, an input and an error message * and use them to interact with end users to collect their inputs for the attribute. * * @param \rock\components\Model $model the data model * @param string $attribute the attribute name or expression. See `\rock\template\Html::getAttributeName()` for the format * about attribute expression. * @param array $options the additional configurations for the field object * @return ActiveField the created ActiveField object * @see fieldConfig */ public function field($model, $attribute, $options = []) { $config = $this->fieldConfig; if ($config instanceof \Closure) { $config = call_user_func($config, $model, $attribute); } if (!isset($config['class'])) { $config['class'] = $this->fieldClass; } return Instance::ensure(ArrayHelper::merge($config, $options, ['model' => $model, 'attribute' => $attribute, 'form' => $this])); }