yiiForBeginners
inicio / programacion / php / yii /{{page.title}}
- 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
- 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.
- 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 *
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
- 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 .
- 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
- la opción de upgrade Pruebo con varios usuario pero no veo diferencia !!!
- 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],
- social Facebook 817677798375833 v2.5 8f0a2adaaa345a5e18e1a029aa2e41c7
- la fuente instalada http://fontawesome.io/cheatsheet/
- 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.
- Usuarios javier javier
pilar pilarvela
maria mariairanzo
- 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 *
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
)’