Showcase of Yii powered websites and projects.
assets/ contains assets definition
commands/ contains console commands (controllers)
config/ contains application configurations
controllers/ contains Web controller classes
mail/ contains view files for e-mails
models/ contains model classes
runtime/ contains files generated during runtime
vendor/ contains dependent 3rd-party packages
views/ contains view files for the Web application
web/ contains the entry script and Web resources
The minimum requirement by this project template that your Web server supports PHP 7.0.
If you do not have Composer, you may install it by following the instructions at getcomposer.org.
You can then install this application template using the following command:
composer install
There are more .php-orig sample configs in config directory. Copy these to .php without -orig and adjust to your
needs.
Create a database. By this moment you should have config/db.php. Specify your database connection there.
Then apply migrations by running:
yii migrate
Permissions tree should be already initialized at step 3, so you can
use user/assign to assign roles to users:
yii user/assign alex admin
Will assign admin role to user with username=alex.
- Install nodeJS
npm install -g less
*/10 * * * * php yii queue/run > /dev/null 2>&1
0 4 * * * php yii image/fetch > /dev/null 2>&1
0 5 * * * php yii check/all > /dev/null 2>&1
docker-compose up -d --build.- There are
.php-origsample configs inconfigdirectory. Copy these to.phpwithout-origand adjust to your needs. docker exec -it yiipowered_php chmod -R 777 assets runtime web/assetsdocker exec -it yiipowered_php bash.composer install && php yii migrate.- Use
user/assignto assign roles to users.
The application will be available at http://localhost.
To enable Twitter (X) authentication via yiisoft/yii2-authclient:
- Go to the X Developer Portal and create a new App.
- Under User Authentication Settings, enable OAuth 1.0a.
- Set the App permissions to "Read" and enable "Request email address from users".
- Add your application's redirect URI (e.g.
http://yourdomain.com/site/auth?authclient=twitter) to the allowed Callback URIs. - Obtain your "API Key" and "API Key Secret".
- In
config/authclients.php, fill in theconsumerKeyandconsumerSecretfor thetwitterclient with the obtained keys:'twitter' => [ 'class' => \yii\authclient\clients\Twitter::class, 'attributeParams' => [ 'include_email' => 'true' ], 'consumerKey' => 'TWITTER_API_KEY', 'consumerSecret' => 'TWITTER_API_SECRET', ]
The application includes unit tests for verifying the authentication flows (GitHub and Twitter). Since AuthHandler heavily relies on Yii2 Active Records (User, Auth), these tests require a proper Yii2 testing environment.
To run the unit tests, you first need to configure the Codeception testing framework:
-
Install Codeception and the Yii2 module via Composer:
composer require --dev codeception/codeception codeception/module-yii2
-
Initialize Codeception:
vendor/bin/codecept bootstrap
-
Configure your test database and Yii application mocks inside
tests/unit.suite.ymland test configuration files. -
Run the unit tests:
vendor/bin/codecept run unit
The test cases can be found in tests/unit/components/AuthHandlerTest.php.