/** * Take a Craft model and set attributes * Shortcut for $model->setAttributes($craftModel->attributes) * * @param $model * @return void */ public function setAttributesFromModel($model) : KffeinCraftModel { return $this->setAttributes($model->attributes); } /** * Take a Craft model * Create an instance of kffeinModel * Set attributes with craftModel pass as argument * Return the model * Shortcut for (new $model())->setAttributesFromModel($craftModel) * - become: $model::fromModel($craftModel)
{ // Because: https://bugs.php.net/bug.php?id=74980 if (PHP_VERSION_ID >= 70100 && strpos($message, 'Narrowing occurred during type inference. Please file a bug report') !== false) { return null; } return parent::handleError($code, $message, $file, $line); } /** * @inheritdoc */ public function getExceptionName($exception)
* * @param $model * @return void */ public function setAttributesFromModel($model) : KffeinCraftModel { return $this->setAttributes($model->attributes); } /** * Take a Craft model * Create an instance of kffeinModel * Set attributes with craftModel pass as argument
if ($scenario !== null) { $model->setScenario($scenario); } if (property_exists($model, 'element')) { $model->element = $craftModel; } $model->setAttributesFromModel($craftModel); return $model; } /** * Set the scenario of the model * Return the current model to chain method
'slug' => $slug, 'with' => Product::withScenario(Product::SCENARIO_DETAIL), 'typeId' => $configuration->product_type_ids ]); // Get product model $productModel = Product::fromModel($product, Product::SCENARIO_DETAIL)->export(); // Get Product variants $variants = $productModel['variants']; $params = ['product' => $product];
$args = $this->controller->bindActionParams($this, $params); Yii::debug('Running action: ' . get_class($this->controller) . '::' . $this->actionMethod . '()', __METHOD__); if (Yii::$app->requestedParams === null) { Yii::$app->requestedParams = $args; } return call_user_func_array([$this->controller, $this->actionMethod], $args); } }
} $result = null; if ($runAction && $this->beforeAction($action)) { // run the action $result = $action->runWithParams($params); $result = $this->afterAction($action, $result); // call afterAction on modules foreach ($modules as $module) { /* @var $module Module */
/** * @inheritdoc */ public function runAction($id, $params = []) { try { return parent::runAction($id, $params); } catch (\Throwable $e) { if ($this->request->getAcceptsJson()) { Craft::$app->getErrorHandler()->logException($e); if (!YII_DEBUG && !$e instanceof UserException) { $message = Craft::t('app', 'A server error occurred.'); } else {
$parts = $this->createController($route); if (is_array($parts)) { /* @var $controller Controller */ list($controller, $actionID) = $parts; $oldController = Yii::$app->controller; Yii::$app->controller = $controller; $result = $controller->runAction($actionID, $params); if ($oldController !== null) { Yii::$app->controller = $oldController; } return $result; }
* @param string $route * @param array $params * @return Response|null The result of the action, normalized into a Response object */ public function runAction($route, $params = []) { $result = parent::runAction($route, $params); if ($result !== null) { if ($result instanceof Response) { return $result; }
$params = $this->catchAll; unset($params[0]); } try { Yii::debug("Route requested: '$route'", __METHOD__); $this->requestedRoute = $route; $result = $this->runAction($route, $params); if ($result instanceof Response) { return $result; } $response = $this->getResponse(); if ($result !== null) {
if (($response = $this->_processActionRequest($request)) !== null) { return $response; } // If we're still here, finally let Yii do it's thing. try { return parent::handleRequest($request); } catch (\Throwable $e) { $this->_unregisterDebugModule(); throw $e; } }
{ try { $this->state = self::STATE_BEFORE_REQUEST; $this->trigger(self::EVENT_BEFORE_REQUEST); $this->state = self::STATE_HANDLING_REQUEST; $response = $this->handleRequest($this->getRequest()); $this->state = self::STATE_AFTER_REQUEST; $this->trigger(self::EVENT_AFTER_REQUEST); $this->state = self::STATE_SENDING_RESPONSE; $response->send();
$file = explode("/workers/", $_SERVER['REQUEST_URI']); echo file_get_contents('./dev/' . $file[1]); } else { // Load and run Craft define('CRAFT_ENVIRONMENT', getenv('ENVIRONMENT') ?: 'production'); $app = require CRAFT_VENDOR_PATH.'/craftcms/cms/bootstrap/web.php'; $app->run(); }