Skip to content
/app-apiPublic template

Yii

Yii API application

An application template for a new API project


Latest Stable VersionTotal DownloadsbuildCode Coveragestatic analysistype-coveragepsalm-level

API request result

The package is an API application template. If you need console only or classic web please start with corresponding templates:

Requirements

  • PHP 8.2 - 8.5.

Installation

Local installation

If you do not have Composer, you may install it by following the instructions at getcomposer.org.

Create a project:

composer create-project yiisoft/app-api myproject
cd myproject

Note

Ensure that Composer is executed with the same PHP version that will be used to run the application.

Copy the example environment file and adjust as needed:

cp .env.example .env

To run the app:

./yii serve

Now you should be able to access the application through the URL printed to console. Usually it is http://localhost:8080.

Tip

The .env file is for local development only and is excluded from version control. In production, configure environment variables via your server or container instead.

Installation with Docker

Warning

Docker compose version 2.24 or above is required.

Fork the repository, clone it, then:

cd myproject
make composer update

To run the app:

make up

To open the running app in your default browser:

make open

To stop the app:

make down

The application is available at http://localhost.

Other make commands are available in the Makefile and can be listed with:

make help

Directory structure

The application template has the following structure:

config/ Configuration files.
common/ Common configuration and DI definitions.
console/ Console-specific configuration.
environments/ Environment-specific configuration (dev/test/prod).
web/ Web-specific configuration.
docker/ Docker-specific files.
public/ Files publically accessible from the Internet.
index.php Entry script.
runtime/ Files generated during runtime.
src/ Application source code.
Api/ API action handlers and API-specific code.
Shared/ Shared API components (middleware, presenters, factories).
Console/ Console commands.
Shared/ Code shared between API and console applications.
bootstrap.php Application bootstrap (autoloading, environment setup).
Environment.php Environment configuration class.
tests/ A set of Codeception tests for the application.
Api/ API endpoints tests.
Console/ Console command tests.
Functional/ Functional tests.
Unit/ Unit tests.
vendor/ Installed Composer packages.
Makefile Config for make command.
yii Console application entry point.

Testing

The template comes with ready to use Codeception configuration. To execute tests, in local installation run:

./vendor/bin/codecept build
APP_ENV=test ./yii serve > ./runtime/yii.log 2>&1&
./vendor/bin/codecept run

For Docker:

make codecept build
make codecept run

Static analysis

The code is statically analyzed with Psalm. To run static analysis:

./vendor/bin/psalm

or, using Docker:

make psalm

Support

If you need help or have a question, check out Yii Community Resources.

License

The Yii3 API template is free software. It is released under the terms of the BSD License. Please see LICENSE for more information.

Maintained by Yii Software.

Support the project

Open Collective

Follow updates

Official websiteTwitterTelegramFacebookSlack

About

Yii3 API application template

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

106 stars

Watchers

15 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages