yiiForBeginners

inicio / programacion / php / yii /{{page.title}}

  1. Propósito Se trata de seguir el libro que da título al documento. yii-2-for-beginners.pdf se finaliza antes de lo esperado !!! buena señas !!! es la version impresa en 2014-11-14
  2. plantilla Cierro una plantilla tal y como esta una vez finalizado el libro. Yii2build Otra con es misma versión pero con los textos en castellano. Yii2construir Y sobre esas que dejo cerradas hago mejoras y adecuo a lo que quiera.
  3. Entorno 3.1. Para intentar desplegar desde git http://code.tutsplus.com/tutorials/programming-with-yii2-getting-started--cms-22440 3.2. Versiones en remoto Bitbuchet creo un repositorio https://bitbucket.org/pelos6/yii2build usuario pelos6 contraseña pelos678 https://bitbucket.org/pelos6/yii2construir este ultimo repositorio aun siendo público no me deja instalarlo en hostinger javieriranzoburriel.xyz así que lo paso a github.com uso una opción de importar de otros repositorios y despues de analiar la url me dice

y al poco en el correo Hi pelos6! The import to https://github.com/pelos6/yii2constuir is finished! If you need to update the authors, you can do that at https://import.github.com/pelos6/yii2constuir/import.

Happy cloning!

Your friends at GitHub .- Puede que la clave por lo que no me dejaba desplegar desde bitbucket.org fuera la url del repositorio. Me dicen que use https://bitbucket.org/pelos6/yii2construir.git en vez de https://pelos6@bitbucket.org/pelos6/yii2construir.git 3.3. Console2 Instalo console2 como alternativa a cmd de windows. 3.4. XAMP Instalo Xamp

creo el directorio c:\var\www\yiibuild

3.5. Virtual Host modifico httpd-vhosts.conf y C:\Windows\System32\drivers\etc\hosts

Me daba este error ¡Acceso prohibido!

Usted no tiene permiso para acceder al objeto solicitado. El objeto está protegido contra lectura o el servidor no puede leerlo.

Si usted cree que esto es un error del servidor, por favor comuníqueselo al administrador del portal.

Error 403

que se corrige dejando la definición del host así

NameVirtualHost * DocumentRoot “C:\var\www\yii2build\frontend\web” ServerName localhost ServerAlias www.yii2build.com Options All AllowOverride All Require all granted DocumentRoot “C:\var\www\yii2build\backend\web” ServerName backend.yii2build.com ServerAlias www.yii2build.com Options All AllowOverride All Require all granted

poner Options Indexes FollowSymLinks para poder navegar en el directorio.

3.6. MySql Mysql no tiene contraseña al instalar XAMP ??? UPDATE user SET password=PASSWORD(“javier”) WHERE user=“root”; FLUSH PRIVILEGES;

Un error al crear el repositorio con Git GUI 0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487 AllocationBase 0x0, BaseAddress 0x68570000, RegionSize 0x3E0000, State 0x10000 C:\Program Files (x86)\Git\bin\sh.exe: *** Couldn’t reserve space for cygwin’s heap, Win32 error 0

recomiendan reiniciar el equipo. Funciona …

3.7. MySqlWordbench

25/02/2016 mySqlWordbench no funciona cuando quiero hacer un model. Lo vuelvo a instalar en otro directorio C:\Program Files\MySQL\MySQL Workbench 6.3 CE_02 pero pasa lo mismo

uso el shell del propio XAMP para lanzar mySql en modo comando.

No me dejaba hacer una fk de profile contra user hasta que user_id no tenia un index. Se ve que el index correspondiente a gender_id se creo desde MySqlWordbench antes de fallar.

3.8. Gii yii2build.com/index.php?r=gii funciona.

Copio el composer.json y lanzo composer c:\var\www\yii2build>composer self-update c:\var\www\yii2build>composer update

pero da este error Illegal offset type in isset or empty

con la opción -vv (vervose) veo esta información

Composer\Package\Version\VersionParser->parseConstraints() at C:\Users\Javier\AppData\Roaming\Composer\vendor\fxp\composer-asset-plugin\Repository\FilterUtil.php:41 Fxp\Composer\AssetPlugin\Repository\FilterUtil::getVersionConstraint() at C:\Users\Javier\AppData\Roaming\Composer\vendor\fxp\composer-asset-plugin\Repository\VcsPackageFilter.php:214 asi que borro la “cache” C:\Users\Javier\AppData\Roaming\Composer

composer global require “fxp/composer-asset-plugin:1.0.0” composer global require “fxp/composer-asset-plugin:1.1.1” <https://getcomposer.org/doc/04-schema.md#minimum-stability

  1. Convenciones de nombre y lo que se da por supuesto. En una vista como la pantalla de login el enlace para resetear la contraseña te lleva a http://yii2build.com/index.php?r=site%2Frequest-password-reset site/request-password-reset Yii2 te lleva a siteController y alli al método actionRequestPasswordReset. Se añade Controller y action y se canbia – por Mayuscula en la siguiente palabra. Este método te lleva a requestPasswordResetToken.php que es la vista con el formulario. Ese formulario lleva como id request-password-reset-form ese id se usa para la action del propio formulario de forma que el action es /index.php?r=site%2Frequest-password-reset /index.php?r=site/request-password-reset se quita el final -form por el propio Framework. Este formulario se manda al mismo controller que si va bien manda a Home y si no saca un mensaje de error .
  2. GII CRUD Algo diferente sobre lo que dice el libro para empezar le url de la herramienta es con yii2
    http://backend.yii2build.com/?r=gii crear el directorio /models/search

5.1. tabla con dos palabras Para user_type model class backend\models\UserType search model class backend\models\search\UserTypeSearch controller class backend\controllers\UserTypeController view path @app/views/user-type y se crea el directorio backend/views/user-type

generated views\user-type_form.php generated views\user-type_search.php generated views\user-type\create.php generated views\user-type\index.php generated views\user-type\update.php generated views\user-type\view.php

no me gusta mucho esa forma de nombrar directorios pero funciona. 6. GII controller Cambia algo sobre el libro mejor seguir el tutorial de yii2 http://www.yiiframework.com/doc-2.0/guide-start-gii.html

  1. la opción de upgrade Pruebo con varios usuario pero no veo diferencia !!!
  2. probando el reenvio de contraseña Da un problema SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘status’ in ‘where clause’ The SQL being executed was: SELECT 1 FROM user WHERE (email=‘javieriranzo@hotmail.com’) AND (status=10)

cambio la columna de la tabla user de status_id a status no … cambio en PasswordReserTokenForm ‘status’ => User::STATUS_ACTIVE, por ‘status_id’ => User::STATUS_ACTIVE, y ademas en rules //‘filter’ => [‘status’ => User::STATUS_ACTIVE], ‘filter’ => [‘status_id’ => User::STATUS_ACTIVE],

  1. social Facebook 817677798375833 v2.5 8f0a2adaaa345a5e18e1a029aa2e41c7
  2. la fuente instalada http://fontawesome.io/cheatsheet/
  3. Sign Sign up es registrarse de nuevas en un sistema y sing in es entrar con las claves que se han creado en el sign up.
  4. Usuarios javier javier

pilar pilarvela

maria mariairanzo

  1. problemas

13.1. No encuentra userType quiza por el nombre con dos palabras http://backend.yii2build.com/index.php?r=usertype 13.2. Composer composer global require “fxp/composer-asset-plugin:~1.1.1” borro por error composer.lock y todo empieza a ir mal

me bajo la aplicación de cero en ver/www1 pero al final no lo uso !!!

reinicio el equipo que me pedia al lanzar composer un token para git!!!!!

en la págino de YII recomiendan composer global require “fxp/composer-asset-plugin:~1.1.1” y es el que funciona mejor que composer global require “fxp/composer-asset-plugin:1.0.*@dev” que es el que recomienda el autor del libro

composer install me vuelve a pedir el token y me da la opción de cojerlo de https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+VAIO+2016-02-27+1113 meto mi clave de git y genero el token 07577cb9204deba3eaec80f4b0bc5c09af2e7b83 lo introduzco y se carga y se vuelve a ver la aplicación. Se genera un composer.lock nuevo … que no borrare !!! Ya hasta funciona el datapicker 13.3. No se carga el datepicker C:\Users\Javier\AppData\Roaming\Composer\vendor borrar el directorio fx C:\nube\MEGA\programacion\miAppHostinger\miApp>composer global require “fxp/composer-asset-plugin:~1.1.1” y composer update 13.4. Class ‘common\models\NotFoundHttpException’ not found Al intentar entrar en el backend con un usuario que no tiene el rol de admin … solicionado … faltaba el use yii\web\NotFoundHttpException; 13.5. Couldn’t reserve space for cygwin’s heap, Un error al crear el repositorio con Git GUI 0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487 AllocationBase 0x0, BaseAddress 0x68570000, RegionSize 0x3E0000, State 0x10000 C:\Program Files (x86)\Git\bin\sh.exe: *** Couldn’t reserve space for cygwin’s heap, Win32 error 0

recomiendan reiniciar el equipo. Funciona …

13.6. Invalid Parameter – yii\base\InvalidParamException un error al lanzar la aplicación: http://yii2build.com/ el frontend

Invalid Parameter – yii\base\InvalidParamException

The file or directory to be published does not exist: C:\var\www\yii2build/vendor\bower/jquery/dist

cambio el contenido del directorio C:\var\www\yii2build\vendor\bower\bower-asset

13.7. mySqlWordbench no funciona cuando quiero hacer un model. Lo vuelvo a instalar en otro directorio C:\Program Files\MySQL\MySQL Workbench 6.3 CE_02 pero pasa lo mismo

13.8. bower-asset

un error al lanzar la aplicación: http://yii2build.com/ el frontend

Invalid Parameter – yii\base\InvalidParamException

The file or directory to be published does not exist: C:\var\www\yii2build/vendor\bower/jquery/dist

cambio el contenido del directorio C:\var\www\yii2build\vendor\bower\bower-asset

a

C:\var\www\yii2build\vendor\bower y funciona !!!! 13.9. ¡Acceso prohibido! Me daba este error ¡Acceso prohibido!

Usted no tiene permiso para acceder al objeto solicitado. El objeto está protegido contra lectura o el servidor no puede leerlo.

Si usted cree que esto es un error del servidor, por favor comuníqueselo al administrador del portal.

Error 403

que se corrige dejando la definición del host así

NameVirtualHost * DocumentRoot “C:\var\www\yii2build\frontend\web” ServerName localhost ServerAlias www.yii2build.com Options All AllowOverride All Require all granted DocumentRoot “C:\var\www\yii2build\backend\web” ServerName backend.yii2build.com ServerAlias www.yii2build.com Options All AllowOverride All Require all granted

problemas para crear la foreign key en profile

CREATE TABLE IF NOT EXISTS yii2build.profile ( id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, user_id INT(11) UNSIGNED NOT NULL, first_name TEXT NULL, last_name TEXT NULL, created_at DATETIME NULL, gender_id INT UNSIGNED NOT NULL, birthdate DATE NOT NULL, updated_at DATETIME NULL, PRIMARY KEY (id), INDEX fk_profile_gender_idx (gender_id ASC), CONSTRAINT fk_profile_gender FOREIGN KEY (gender_id) REFERENCES yii2build.gender (id) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT fk_profile_user FOREIGN KEY (user_id) REFERENCES yii2build.user (id) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB

Alter table yii2build.profile with foreign key constraint failed. Field type or character set for column ‘user_id’ does not mach referenced column ‘id’ near ‘ FOREIGN key (user_id) REFERENCES yii2build.user (id)’