f1amy / laravel-realworld-example-app

Exemplary RealWorld backend API built with Laravel PHP framework.

Home Page:https://realworld.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Laravel RealWorld Example App

RealWorld: Backend Tests: status Coverage: percent Static Analysis: status License: MIT

Example of a PHP-based Laravel application containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld API spec.

This codebase was created to demonstrate a backend application built with Laravel framework including RESTful services, CRUD operations, authentication, routing, pagination, and more.

We've gone to great lengths to adhere to the Laravel framework community style guides & best practices.

For more information on how to this works with other frontends/backends, head over to the RealWorld repo.

How it works

The API is built with Laravel, making the most of the framework's features out-of-the-box.

The application is using a custom JWT auth implementation: app/Jwt.

Getting started

The preferred way of setting up the project is using Laravel Sail, for that you'll need Docker under Linux / macOS (or Windows WSL2).

Installation

Clone the repository and change directory:

git clone https://github.com/f1amy/laravel-realworld-example-app.git
cd laravel-realworld-example-app

Install dependencies (if you have composer locally):

composer create-project

Alternatively you can do the same with Docker:

docker run --rm -it \
    --volume $PWD:/app \
    --user $(id -u):$(id -g) \
    composer create-project

Start the containers with PHP application and PostgreSQL database:

./vendor/bin/sail up -d

(Optional) Configure a Bash alias for sail command:

alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'

Migrate the database with seeding:

sail artisan migrate --seed

Usage

The API is available at http://localhost:3000/api (You can change the APP_PORT in .env file).

Run tests

sail artisan test

Run PHPStan static analysis

sail php ./vendor/bin/phpstan

OpenAPI specification (not ready yet)

Swagger UI will be live at http://localhost:3000/api/documentation.

For now, please visit the specification here.

Contributions

Feedback, suggestions, and improvements are welcome, feel free to contribute.

License

The MIT License (MIT). Please see LICENSE for more information.

About

Exemplary RealWorld backend API built with Laravel PHP framework.

https://realworld.io

License:MIT License


Languages

Language:PHP 92.2%Language:Blade 7.5%Language:JavaScript 0.2%