yii2

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 "*"

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

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

Include "C:/Bitnami/wampstack-5.5.22-0/apps/heroku/conf/httpd-prefix.conf"

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
  • http://localhost/miapp/web/index.php?r=gii

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

  • https://github.com/pelos6/miAppYII.git

  • 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

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

http://demos.krajee.com/

  • 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

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 imágenes 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 imágenes modificadas.

  • En config/db.php modifico para que pille la nueva bd.

  • Lanzo la aplicación en programacion/easyii

  • Usar