yii2
inicio / programacion / php / yii /{{page.title}}
{% include toc.html %}
Propósito
- Para hacer aplicaciones con el framework Yii sobre todo con la versión Yii2
- Entender más este framework.
- Tener plantillas básicas para desarrollar.
- Sobre la plantilla basica y sobre la avanzada.
- Si es necesario cambio este documento por un mapa con enlace a varios documentos.
Con la plantilla avanzada seguir este tutorial
Saco fuera de este documento lo específico de las aplicaciones que desarrolle
Instalación
- Es necesario o muy recomendable usar que es un gestor de paquetes de php similar a node.
- C:\Users\Javier\Dropbox\programacion\AplicacionYII
- para la plantilla básica
C:\ProgramData\ComposerSetup\bin\composer.phar create-project yiisoft/yii2-app-basic miApp
- hago un enlace en C:\Bitnami\wampstack-5.5.22-0\apache2\htdocs para poder lanzarlo desde localhost facilmente.
- Como administrador
mklink /D miapp "C:\Users\Javier\Dropbox\programacion\AplicacionYII\miApp"
http://localhost/miapp/web/
y veo la plantilla
graficos
- intento seguir este tutorial para hacer un gráfico del peso tutorial
- para instalar la extensión
C:\ProgramData\ComposerSetup\bin\composer.phar require --prefer-dist miloschuman/yii2-highcharts-widget "*"
- desde
C:\Users\Javier\Dropbox\programacion\AplicacionYII\miApp>
se instala la extensión
sigo este otro post que parece ser dos archivos solo
Este funciona y ya recupero en un gráfico la información de la tabla.
Proyecto en netbeans.
C:\Users\Javier\Dropbox\programacion\AplicacionYII\miApp
* ruta a los logs
A git
cd C:\Users\Javier\Dropbox\programacion\AplicacionYII>
git init
git add .
git commit -m "primer commit"
git remote add origin https://github.com/pelos6/aplicacionYII.git
git push -u origin master
Gestión de la tabla peso
- Sigo el tutorial para usar gii. guia de inicio
http://localhost/miapp/web/index.php?r=gii
http://api.highcharts.com/highcharts#lang.downloadJPEG
Highcharts.setOptions({
lang: {
months: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
weekdays: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi']
}
});
bitmani y heroku
bitnami-apps-prefix.conf descomentar
Include "C:/Bitnami/wampstack-5.5.22-0/apps/heroku/conf/httpd-prefix.conf"
- para seguir con wordpress https://wiki.bitnami.com/Infrastructure_Stacks/BitNami_AMP_Stacks/Heroku_Client/Heroku_Client_for_advanced_users
Ver funcionamiento del framework
- Para cambiar el idioma de los avisos de error por ejemplo basta con poner
'language' => 'es',
- en config/web
conectar con oracle
- Base de datos XE del portatil system pelos678 javier pelos678 sys javier javier cambiada a pelos678 el 16/09/2015 tiene buena pinta yii2-oci8
return [
'components' => [
....
'db' => [
'class' => 'apaoww\oci8\Oci8DbConnection',
'dsn' => 'oci8:dbname=(DESCRIPTION=(ADDRESS=( PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA= (SID=xe)));charset=AL32UTF8;', // Oracle
'username' => 'databaseusername',
'password' => 'databasepassword',
'attributes' => [
PDO::ATTR_STRINGIFY_FETCHES => true,
]
],
],
];
- Se bloquea la cuenta de javier
como system la desbloqueo.
El debug de database me ayuda a ver que select se lanza que me dice que no existe la tabla peso
SELECT a.column_name, a.data_type, a.data_precision, a.data_scale, a.data_length,
a.nullable, a.data_default,
( SELECT D.constraint_type
FROM ALL_CONS_COLUMNS C
inner join ALL_constraints D on D.OWNER = C.OWNER and D.constraint_name = C.constraint_name
WHERE C.OWNER = B.OWNER
and C.table_name = B.object_name
and C.column_name = A.column_name
and D.constraint_type = 'P') as Key,
com.comments as column_comment
FROM ALL_TAB_COLUMNS A
inner join ALL_OBJECTS B ON b.owner = a.owner and ltrim(B.OBJECT_NAME) = ltrim(A.TABLE_NAME)
LEFT JOIN all_col_comments com ON (A.owner = com.owner AND A.table_name = com.table_name AND A.column_name = com.column_name)
WHERE
a.owner = 'JAVIER'
and b.object_type IN ('TABLE', 'VIEW', 'MATERIALIZED VIEW')
and b.object_name = 'peso'
ORDER by a.column_id
importante que el nombre de la tabla vaya en mayuscula.
seguir con una tabla más simple con una key numerica
- employees
SELECT username
FROM dba_users u
WHERE EXISTS (
SELECT 1
FROM dba_objects o
WHERE o.owner = u.username )
AND default_tablespace not in ('SYSTEM','SYSAUX')
- esto lo lanzaba con el usuario javier con gii para generar el modelo de la tabla pero no tenia permiso de select para esas vistas de sys así que desde sys javier
gran select on dba_objects to javier
grant select on dba_users to javier
- y solucionado.
Desplegar en hostinger desde git
- Descubro en el panel de hostinger la opción git al final de todo.
- Configuro para que se despliegue esta aplicación.
Creo un directorio en public_html/AplicacionYII
se conecta con git y clona el proyecto
Deployment start
Repository https://github.com/pelos6/aplicacionYII.git
Checking project directory is empty
Project directory is git repository
/# On branch master
nothing to commit (working directory clean)
Looking for composer.json file
composer.json file was not found
Deployment end
pero no encuentra composer.json
cambio el proyecto para que se inicie en el raiz.
Borro el repositorio git
lo creo de nuevo sin readme.md ni gitignore ni
lo lanzo desde C:\Users\Javier\Dropbox\programacion\AplicacionYII\miApp y solucionado.
git init
git add .
git commit -m "primer commit"
git remote add origin https://github.com/pelos6/miAppYII.git
git push -u origin master
- luego en hostinger en la parte de git https://cpanel.hostinger.es/git/index/aid/14777906
repository address https://github.com/pelos6/miAppYII.git branch master install path aplicacionYII
creo el repositorio y al desplegarse se carga el directorio vendor que en git no se carga por el .gitignore Deployment start Repository https://github.com/pelos6/miAppYII.git Checking project directory is empty Project directory is empty Cloning code repository Repository cloned Looking for composer.json file Found composer.json file. Installing dependencies Dependencies form composer.json file were updated Deployment end
miApp\vendor\bower al desplegar se llama bower-asset lo renombro a bower y funciona.
GII para generar el CRUD de la tabla
http://localhost/miapp/web/index.php?r=gii
Nuevo
DropDownList http://demos.krajee.com/widget-details/datepicker
- para instalar las dependencias despues de meter la línea en composer.json
php C:\ProgramData\ComposerSetup\bin\composer.phar install
- en el directorio donde esta composer.json
pero no descarga nada … tengo que borrar composer.lock para que funcione y cree el directorio correspondiente en vendor.
problemas con la copia en el VAIO
- Como no consigo resolver los problemas (no ve el debug ni consigo navegar !!!!) copio la versión de producción en hostinger en
C:\nube\MEGA\programacion\miAppHostinger
- las claves son
- javier
- usuario1
GII para generar el CRUD de la tabla
http://localhost/miapp/web/index.php?r=gii
para la cache
- Como forma de borrar la cache
yii cache/flush-all
Maestro detalle
- Sigo estos posts http://www.sitepoint.com/yii-2-0-activerecord-explained/
yii2 videotutorial
https://github.com/lukos/yii2-tutorial https://www.youtube.com/watch?v=pQ9MZvw1mkM
- clono el ejemplo C:\Users\Javier\Dropbox\programacion\ejemploYII2Libros>
git clone https://github.com/lukos/yii2-tutorial.git
https://github.com/lukos/yii2-tutorial.git
mklink /D yii2-tutorial "C:\Users\Javier\Dropbox\programacion\ejemploYII2Libros\yii2-tutorial"
- creo este enlace pero tengo que actualizar el composer
- para instalar las dependencias despues de meter la línea en composer.json
php C:\ProgramData\ComposerSetup\bin\composer.phar install
en el directorio donde esta composer.json
crea el directorio vendor pero da un problema con
Call to undefined function yii\caching\xcache_isset()
hago un composer update y borro composer.lock
pero no descarga nada … tengo que borrar composer.lock para que funcione y cree el directorio correspondiente en vendor.
Modifico la opción de cache de config\web.php
'cache' = // 'class' => 'yii\caching\FileCache',
'class' => 'yii\caching\DummyCache',
],
- y funciona pero da un error de base de datos.
- Parece que viene con una base de datos sqlite.
- Tengo un browser para ver sqlite con el que consulto la base de datos y saco la información para crear la tabla en mySql
instalando una aplicación yii2 chula EasyiiCMS
http://easyiicms.com/docs/install
php C:\ProgramData\ComposerSetup\bin\composer.phar global require "fxp/composer-asset-plugin:1.0.0"
php C:\ProgramData\ComposerSetup\bin\composer.phar create-project noumo/easyii-shop shop dev-master
se recomienda self-update para composer pero parece funcionar …
es necesario meter toda la url …. debe ser cosa del .htaccess http://localhost/programacion/easyii/shop/requirements.php
http://localhost/programacion/easyii/shop/index.php
* todo bien menos que no veo las imagenes ni la del carrousel ni las otras ….
* lo muevo al raiz de htdocs
C:\Bitnami\wampstack-5.5.22-0\apache2\htdocs
* pero no hace falta solo la carpeta
C:\Bitnami\wampstack-5.5.22-0\apache2\htdocs\uploads
* que es donde esta el directorio thumbs con las imagenes
- http://localhost/admin/sign/in para entrar
- root
javier
muy configurable … en modo live se puede seleccioar las partes a editar !!!..
cambiar el idioma en config.php
- esta hasta en arabe !!!
no consigo que funcione en otro directorio que no sea el raiz … ni cambiando las rutas en la base de datos ….
creo otra basse de datos en mi pc
paraeasyiicms para no tener que quitar las rutas a las imagenes modificadas.
En config/db.php modifico para que pille la nueva bd.
Lanzo la aplicación en programacion/easyii
Usar