Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setting up preview of Yii2

Tags:

php

yii2

The Yii2 preview was recently released and is available on github. I want to take it for a test drive, but the "documentation" so far gets outdated almost instantly since it is still under heavy development. I have tried to follow this guide on creating a simple CRUD app with Yii2, but it fails at the step:

php yiic.php app/create /var/www/yii2

With the error:

Could not open input file: yiic.php

Indicating that there is no file called yiic.php. The only folder within the framework folder is yii (framework/yii), and within that folder there is no file yiic.php, only Yii.php which when called in the command line gives the command list:

The following commands are available:
- asset
- cache
- help
- message
- migrate

Anyone managed to successfully setup a Yii2 app? Care to share how you got it done?

like image 688
Brett Gregson Avatar asked May 28 '13 09:05

Brett Gregson


People also ask

How do I start Yii2?

Installing from an Archive File Download the archive file from yiiframework.com. Unpack the downloaded file to a Web-accessible folder. Modify the config/web. php file by entering a secret key for the cookieValidationKey configuration item (this is done automatically if you are installing Yii using Composer):

What is widget in Yii2?

Advertisements. A widget is a reusable client-side code, which contains HTML, CSS, and JS. This code includes minimal logic and is wrapped in a yii\base\Widget object. We can easily insert and apply this object in any view.


1 Answers

Seems like yiic has been removed for now, there are alternatives though, so read on.

It's all in the early stages, so the following method could break in the coming days/weeks/months. Therefore use with caution.

There are 2 ways to do this now:

  1. Use composer. (I recommend this option.)

  2. Directly copy the contents of yii2/apps/ directory to your apps directory, depending on the type of app you want to try.


There are currently 2 options for type of app - advanced, and basic. Both are in their respective directories within the yii2/apps/ directory, i.e yii2/apps/advanced and yii2/apps/basic.


For basic go through the basic readme.md, and for advanced go through the advanced readme.md.


  1. The directions for using composer are given in the respective readme.md files. Including them here for completeness:

    • Basic app:
      1. Install composer, if you don't have it.
      2. Use composer to install the app alongwith dependencies(Yii): php path/to/composer.phar create-project --stability=dev yiisoft/yii2-app-basic my_yii2_trial
      3. Access app from http://localhost/my_yii2_trial/www

    • Advanced app:
      1. Install composer, if you don't have it.
      2. Use composer to install the app alongwith dependencies(Yii): php path/to/composer.phar create-project --stability=dev yiisoft/yii2-app-advanced my_yii2_trial
      3. According to readme, after step 2 app should be accessible, but composer was failing(see issue 439). With schmunk's tip, ran the install or install.bat command that gets copied by composer: ./install . Selected development environment (by entering choice 0 in the instructions that show up when running install command).
        Update: The command has been renamed to init, composer doesn't fail anymore, with fix from Qiang (check the issue 439 for more details).
      4. Access app at: http://localhost/my_yii2_trial/frontend/www or http://localhost/my_yii2_trial/backstage/www

  2. Here's how to copy the directory and get it working:

    • Basic app:

      1. create your web-accessible directory for the app : my_yii2_trial
      2. copy all files and folders from yii2/apps/basic/ directory to my_yii2_trial/ directory.
      3. modify the my_yii2_trial/www/index.php file to point to the correct path for Yii.php. For me it was within yii2/framework/yii/
      4. comment the line that tries to include ../vendor/autoload.php file, I couldn't find that file anywhere, so its probably for some future use. it is the autoloader provided by composer.
      5. Access from browser : http://localhost/my_yii2_trial/www

    • Advanced app:

      1. create your web-accessible directory for the app : my_yii2_trial
      2. copy all files and folders from yii2/apps/advanced/ directory to my_yii2_trial/ directory.
      3. modify the my_yii2_trial/frontend/www/index.php file to point to the correct path for Yii.php. Similarly modify backstage/www/index.php.
      4. comment the line that tries to include ../vendor/autoload.php file in both the index.php of backstage and frontend.
      5. Access app at: http://localhost/my_yii2_trial/frontend/www or http://localhost/my_yii2_trial/backstage/www


Some important links to read more about this: issue 77, issue 108, issue 131, and wiki comment.


I am not sure how composer's autoloader is being used, so can't comment on that. Also in future versions, backstage might be renamed to backend.

like image 175
bool.dev Avatar answered Sep 28 '22 17:09

bool.dev