How to create custom widget in Yii2

This tutorial will show you how you can create your own custom widget in Yii2. Widgets are reusable blocks and they are used in your views. The main advantage of Widget is you can write once and reuse it wherever you need it in your view.


To create a custom widget we must extend the base widget yii\base\Widget and we have to override the init() and/or run() methods of base widget.

Here is the simple steps for creating custom widget.

Make a folder named “components” in your project root folder.


Crate a file with desired widget name inside components folder and copy past the below code and change the class name in the code. Example – Mywidget.php

In this class ‘Mywidget’ is our custom widget. ‘app\components’ is the namespace of this class and ‘Mywidget’ is a class name. Using both namespace and class name, we can access this widget like ‘app\components\Mywidget’.

Create a views folder inside components folder. Create a view file named myWidget.php in components/views folder and put your content in it.


You are done!. Now you can use your widget inside any of your app views.

Usage example



Prakash S

Prakash S

I would like to introduce myself as a Software professional opting for the career in software industry. I'm Prakash S, a MCA graduate and trained as industry level practice for Software technology. Basically I am a PHP Developer but now days exploring more in HTML5, CSS, AngularJS and jQuery libraries.