Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Book Overview & Buying Yii2 Application Development Cookbook
  • Table Of Contents Toc
  • Feedback & Rating feedback
Yii2 Application Development Cookbook

Yii2 Application Development Cookbook

By : Andrew Bogdanov, Eliseev
4.5 (2)
close
close
Yii2 Application Development Cookbook

Yii2 Application Development Cookbook

4.5 (2)
By: Andrew Bogdanov, Eliseev

Overview of this book

Yii is a free, open source web application development framework written in PHP5 that promotes clean DRY design and encourages rapid development. It works to streamline your application development time and helps to ensure an extremely efficient, extensible, and maintainable end product. Being extremely performance optimized, Yii is a perfect choice for any size project. However, it has been built with sophisticated, enterprise applications in mind. You have full control over the configuration from head-to-toe (presentation-to-persistence) to conform to your enterprise development guidelines. It comes packaged with tools to help test and debug your application, and has clear and comprehensive documentation. This book is a collection of Yii2 recipes. Each recipe is represented as a full and independent item, which showcases solutions from real web-applications. So you can easily reproduce them in your environment and learn Yii2 fast and without tears. All recipes are explained with step-by-step code examples and clear screenshots. Yii2 is like a suit that looks great off the rack, but is also very easy to tailor to fit your needs. Virtually every component of the framework is extensible. This book will show how to use official extensions, extend any component, or write a new one. This book will help you create modern web applications quickly, and make sure they perform well using examples and business logic from real life. You will deal with the Yii command line, migrations, and assets. You will learn about role-based access, security, and deployment. We’ll show you how to easily get started, configure your environment, and be ready to write web applications efficiently and quickly.
Table of Contents (14 chapters)
close
close
13
Index

Code generation

Yii2 provides the powerful module Gii to generate models, controllers, and views, which you can easily modify and customize. It's a really helpful tool for fast and quick development.

In this section we will explore how to use Gii and generate code. For example you have a database with one table named film and you would like to create an application with CRUD operations for this table. It's easy.

Getting ready

  1. Create a new application by using composer as described in the official guide at http://www.yiiframework.com/doc-2.0/guide-start-installation.html.
  2. Download the Sakila database from http://dev.mysql.com/doc/index-other.html.
  3. Execute the downloaded SQLs: first the schema then the data.
  4. Configure the database connection in config/main.php to use the Sakila database.
  5. Run your web-server by ./yii serve.

How to do it…

  1. Go to http://localhost:8080/index.php?r=gii and select Model Generator.
  2. Fill out Table Name as actor and Model Class as Actor and press button Generate at the bottom of page.
    How to do it…
  3. Return tothe main Gii menu by clicking the yii code generator logo on the header and choose CRUD Generator.
  4. Fill out the Model Class field as app\models\Actor and Controller Class as app\controllers\ActorController.
    How to do it…
  5. Press the Preview button at the bottom of page and then press green button Generate.
  6. Check the result via http://localhost:8080/index.php?actor/create.
    How to do it…

How it works…

If you check your project structure you will see autogenerated code:

How it works…

Firstly we've created an Actor model. Gii automatically creates all model rules which depends on mysql field types. For example, if in your MySQL actor table's fields first_name and last_name have IS NOT NULL flag then Yii automatically creates rule for it required and sets max length 45 symbols because in our database max length of this field is set up as 45.

public function rules()
{
    return [
        [['first_name', 'last_name'], 'required'],
        [['last_update'], 'safe'],
        [['first_name', 'last_name'], 'string', 'max' => 45],
    ];
}

Also Yii creates relationship between models automatically, based on foreign keys you added to your database. In our case two relations were created automatically.

public function getFilmActors()
{
    return $this->hasMany(FilmActor::className(), ['actor_id' => 'actor_id']);
}

public function getFilms()
{
    return $this->hasMany(Film::className(), ['film_id' => 'film_id'])->viaTable('film_actor', ['actor_id' => 'actor_id']);
}

This relationship has been created because we have two foreign keys in our database. The film_actor table has foreign key fk_film_actor_actor which points to actor table fields actor_id and fk_film_actor_film which points to film table field film_id.

Notice that you haven't generated FilmActor model yet. So if you would develop full-app versus demo you had to generate Film, FilmActor models also. For the rest of the pieces, refer to http://www.yiiframework.com/doc-2.0/guide-start-gii.html.

Create a Note

Modal Close icon
You need to login to use this feature.
notes
bookmark search playlist font-size

Change the font size

margin-width

Change margin width

day-mode

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Delete Bookmark

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete

Delete Note

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete

Edit Note

Modal Close icon
Write a note (max 255 characters)
Cancel
Update Note

Confirmation

Modal Close icon
claim successful

Buy this book with your credits?

Modal Close icon
Are you sure you want to buy this book with one of your credits?
Close
YES, BUY