Login or Signin on https://github.com/
Enter to https://github.com/yiisoft/yii2-app-advanced
Click the Fork button
And it will generate you your own repostitory that you can edit and use without restrictions.
clone this new repository
git clone [email protected]:YOUR_USERNAME/yii2-app-advanced.gitCreate a folder in the project root named api
mkdir apiCreate the following files
api/config/.gitignore
main-local.php
params-local.php
api/config/bootstrap.php
<?php
// configuración al iniciar el app, viene vacia por defectoapi/config/main.php
<?php
$params = array_merge(
require(__DIR__ . '/../../common/config/params.php'),
require(__DIR__ . '/../../common/config/params-local.php'),
require(__DIR__ . '/params.php'),
require(__DIR__ . '/params-local.php')
);
return [
'id' => 'app-api', // !important to not repeat ids on app
'basePath' => dirname(__DIR__),
'controllerNamespace' => 'api\\controllers',
'bootstrap' => ['log'],
'modules' => [],
'components' => [
'user' => [
'identityClass' => 'common\models\User',
'enableAutoLogin' => true,
],
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
],
],
'errorHandler' => [
'errorAction' => 'site/error',
],
/*
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
],
],
*/
],
'params' => $params,
];api/config/params.php
<?php
return [
];api/runtime/.gitignore
*
!.gitignore
api/web/assets/.gitignore
*
!.gitignore
api/web/.gitignore
/index.php
/index-test.php
The previous step created an skeleton for the api application. Now we create
the environmental files to be used for the init command.
Ahora hay que hacerla instalable creando los archivos de ambiente de trabajo o environments
environments/prod/api/config/main-local.php
<?php
return [
'components' => [
'request' => [
// !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
'cookieValidationKey' => '',
],
],
];environments/dev/api/config/main-local.php
<?php
$config = [];
if (!YII_ENV_TEST) {
// configuration adjustments for 'dev' environment
$config['bootstrap'][] = 'debug';
$config['modules']['debug'] = 'yii\debug\Module';
$config['bootstrap'][] = 'gii';
$config['modules']['gii'] = 'yii\gii\Module';
}
return $config;environments/prod/api/config/params-local.php
<?php
return [
];environments/dev/api/config/params-local.php
<?php
return [
];environments/dev/api/web/index-test.php
<?php
// NOTE: Make sure this file is not accessible when deployed to production
if (!in_array(@$_SERVER['REMOTE_ADDR'], ['127.0.0.1', '::1'])) {
die('You are not allowed to access this file.');
}
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');
require(__DIR__ . '/../../vendor/autoload.php');
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/../../common/config/bootstrap.php');
require(__DIR__ . '/../config/bootstrap.php');
$config = require(__DIR__ . '/../../tests/codeception/config/neogcio/acceptance.php');
(new yii\web\Application($config))->run();environments/prod/api/web/index.php
<?php
defined('YII_DEBUG') or define('YII_DEBUG', false);
defined('YII_ENV') or define('YII_ENV', 'prod');
require(__DIR__ . '/../../vendor/autoload.php');
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/../../common/config/bootstrap.php');
require(__DIR__ . '/../config/bootstrap.php');
$config = yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/../../common/config/main.php'),
require(__DIR__ . '/../../common/config/main-local.php'),
require(__DIR__ . '/../config/main.php'),
require(__DIR__ . '/../config/main-local.php')
);
$application = new yii\web\Application($config);
$application->run();environments/dev/api/web/index.php
<?php
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
require(__DIR__ . '/../../vendor/autoload.php');
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/../../common/config/bootstrap.php');
require(__DIR__ . '/../config/bootstrap.php');
$config = yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/../../common/config/main.php'),
require(__DIR__ . '/../../common/config/main-local.php'),
require(__DIR__ . '/../config/main.php'),
require(__DIR__ . '/../config/main-local.php')
);
$application = new yii\web\Application($config);
$application->run();Finally we edit the file boostrap.php file and add a line
common/config/bootstrap.php
Yii::setAlias('api', dirname(dirname(__DIR__)) . '/api');Execute the composer commands for instalation
composer self-update
composer global require "fxp/composer-asset-plugin:~1.1.3"
composer global update
composer create-project --prefer-dist
./initapi/controllers/SiteController.php
<?php
namespace api\controllers;
use Yii;
class SiteController extends \yii\web\Controller
{
public function actionIndex()
{
return __FILE__;
}
}Deploy a server on the api/web with the php -S command and check it on the browser
