b3t8 - Scripting Back Flashcards
De PHP indica gestor de paquetes y frameworks web
Gestor de paquetes -> Composer
Framerworks:
Laravel
Symfony
cake PHP
codeigniter
Yii
Zend
Slim
Cómo se llama el motor de php, como sería V8 para node?
Motor Zend Engine
Productos ecommerce, foros, CMS, … importantes php
phpBB
Magento
Prestashop
Moodle
Wordpress
Joomla
Drupal
phpBB -> foros en internet
Magento -> e-commerce
Prestashop -> e-commerce
Moodle -> formación
Wordpress -> CMS noticias
Joomla -> CMS noticias
Drupal -> CMS noticias
Qué fichero maneja composer en php para dejar las dependencias?
De qué web descarga las librerías?
En qué carpeta se guardan las librerías de terceros?
composer.json
http://packagist.org
se derscargan en la carpeta /vendor
Qué son en el mundo php los siguientes productos?
WAMP
LAMP
MAMP
XAMPP
Es un software que incluye los productos necesarios para hacer aplicaciones web
W/L/M/X -> windows, linux, mac, multiplataforma
A -> Apache
M -> MySql / MariaDB
P -> Perl / PhP / Python
Se llama LEMP por ejemplo, cuando se usa Nginx en lugar de Apache (porque se pronuncia enginx)
en XAMPP por ejemplo, la doble PP es porque es capaz de usar Pearl y PHP
En Ruby, cómo se llama el gestor de dependencias
En qué fichero se configuran las dependencias?
Cómo es el comando para usarlo?
De qué URL se las descarga?
Gestor -> Gems
fichero de dependencias -> gemfile
comando -> gem
http://rubygems.org
Frameworks web de Ruby
Ruby on Rails
Roda
Cuba
Sinatra
Padrino
En Phyton, cómo se llama el gestor de dependencias
En qué fichero se
De qué URL se las descarga?
Gestor -> Pip
fichero -> setup.py
https://pypi.org
Frameworks web en Phyton
Django
Flask -> microservicios
Pyramid
TurboGears
web2py
Cuál es el framework web de javascript que se ejecuta sobre node como scripting back?
Express
Comparativa gestores de dependencias y frameworks
labs a mirar más en detalle de php
basico
cadenas
arrays
Cuáles son las variables superglobal en php y para qué sirven?
Sirven para acceder a datos globales, parecido al httpRequest en los jsp de jee
* $_POST
* $_GET
* $_SERVER
* $_FILES
* $_COOKIE
* $_SESSION
* $_REQUEST
…
Qué herramientas se usan en la arquitectura MEAN?
Cuándo se le llama MERN?
M -> MongoDB
E -> Express
A -> Angular
N -> Node
Se le llama MERN cuando en lugar de Angular se usa React
Es una arquitectura javascript end to end, porque se maneja la información en formato json entre todos los sistemas
Qué son los siguientes componentes principales del framework web de php Laravel?
FACTORY
SEEDER
MODEL
MIGRATION
CONTROLLER
GATES Y POLICIES
Qué herramieta de linea de comandos se usa?
SEEDER -> Sirve para llenar la bbdd de datos de prueba. Son una clase que lo gestiona, lo pude hacer de uno en uno, o automáticamente apoyándose en factorías
FACTORY -> Con el factory se crean objetos con datos de prueba de forma más automatizada. Con la librería FAKER se le dice el tipo de cada dato y genera datos aleatorios de ese tipo, por ejemplo, nombres, apellidos, palabras, numero aleatorio, etc…
MODEL -> Clases de negocio del modelo
MIGRATION -> Para programar cambios en BBDD y deshacerlos. Así se puede gestionar el versionado de la bbdd
CONTROLLER -> el que recibe las peticiones http, como un servlet. No hay fichero de configuración, sino que hay una convención por la cual todos los controladores deben tener Controller en el nombre, por ejemplo, UserController, y se accede a los métodos con la convención de poner en la url /user/[metodo]
GATES Y POLICIES -> Para controlar el acceso a recursos
La herramienta de comandos es artisan. Los comandos empiezan por php artisan
Cómo son los comandos básicos artisan?
php artisan make:model
php artisan make:migration
php artisan make:factory
php artisan migrate
php artisan db:seed
Sintáxis básica php
Cómo abrir y cerrar bloque php
Cómo definir una función
Cómo hacer un bucle
Cómo referirse a un atributo o método de un objeto? Lo que en java sería un punto
Cómo referirse a algo estático de la clase, en lugar de algo del objeto. O también a métodos sobreescritos.
Cómo se terminan las sentencias
Operador para concatenar strings
Cómo empiezan las variables
Diferencia de las comillas simples y dobles en las cadenas
Operador Igualdad
Operador Identico
Operador nave espacial
Fusión de null
Cómo abrir y cerrar bloque php -> <?php ………….>
Cómo definir una función -> function suma(){..}
Cómo hacer un bucle -> foreach($arr as $value) {
Cómo referirse a un atributo o método de un objeto? -> con flecha: objeto->atributo o objeto->metodo()
Cómo referirse a algo estático de la clase, en lugar de algo del objeto -> con :: -> Clase::atributo o Clase::metodo()
Cómo se terminan las sentencias -> con punto y coma ;
Operador para concatenar strings -> con un punto cadena.cadena
Cómo empiezan las variables -> con $
Diferencia de las comillas simples y dobles en las cadenas -> con las dobles interpreta las variables que haya dentro con $
Operador Igualdad (igual valor) -> ==
Operador Identico (igual tipo y valor) -> ===
Operador nave espacial -> $a< ==>$b -> Devuelve -1,0 o 1 si a es menor, igual o mayor que b
Fusión de null -> ?? -> Se pone después de una variable. Si la variable es null, se coge lo que se ponga después de las ?? -> $variableConNull ?? ‘nadie’
En la arquitectura para usar php, para poder ejecutar una página php, qué tenemos que instalar en el servidor web (como Apache)?
Un módulo php -> o mod_php o mod_proxy_fcgi. Este último es más eficiente porque que llaman a un proceso FPM que descarga al Apache de trabajo
Arrays en PHP
Qué es un array asociativo en php?
Cómo se construye un array?
Funciones de los array
- print_r
- rsort
- sort
- arsort
- asort
- ksort
- krsort
- explode
Un array que permite, como una hashtable en java, que el índice no sea un número sino una cadena
$miArray[‘elemento1’]
Se construye con $miArray = array(‘uno’, 2, ‘3’), pueden tener distintos tipos de datos
o $miArray = [‘name’ => ‘foo’, ‘age’ => 20];
Funciones de los array -> ver en laboratorios
- print_r -> pinta mas información a parte del valor, se usa para depurar
- sort y rsort -> para arrays no asociativos, ordena ascendentemente e inversamente respectivamente
- asort -> ordena ascendentemente por el valor, mantiene correspondencia entre clave y valor, útil en asociativos
- arsort -> ordena al revés, descendentemente por el valor, mantiene correspondencia entre clave y valor, útil en asociativos
- ksort -> ordena ascendentemente por clave, también mantiene correspondencia entre clave y valor, útil en asociativos
- krsort -> ordena descendentemente por clave, también mantiene correspondencia entre clave y valor, útil en asociativos
- explode -> en base a un separador y una cadena con elementos separados por ese separador, te construye un array con los elementos
- implode -> al revés explode, te genera una cadena a partir de un array un separador
En PHP
Cómo se referencia al padre? (como super. en java)
Cómo se referencia al objeto actual? (como this. en java)
Hacer un constructor
Equivalente al finalize() de java
Equivalente al final de java
Equivalente al implements de java
Similar al import en java
Qué es un magic method?
cómo se comprueba si una variable está inicializada o no?
Padre -> parent::
Actual -> $this para lo del propio objeto y self:: para las cosas estáticas de la clase
Nomeclatura constructores -> ** __construct()**
Como el finalize() -> ** __destruct()**
Equivalente al final de java -> igual, final
Equivalente al implements de java -> igual, implements
Similar al import -> require o include
Magic method -> los métodos especiales que empiezan por dos guiones bajos, como el __construct() o el __get() y __set()
cómo se comprueba si una variable está inicializada o no? -> isset(variable)
Qué son los traits en php?
Es una forma de reutilización de métodos
Un trato es como una clase que empieza por la palabra trait en lugar de class, que tiene métodos que queremos reutilizar
El la clase que quiere reutilizar esos métodos, para usarlos, se pone un bloque
use Trato1, Trato2..{
Trato1::metodo
}
Cuando hay tratos y herencia, ante métodos con el mismo nombre, tiene preferencia primero el metodo de la propia clase, luego el del trato y luego el de la clase padre
class member > trait method > inherited method
Cómo se pasa en php por referencia una variable?
Con el &
function foo(&$var)
{
$var++;
}
Algunos ejemplos de cachés para php
b) OpCache
c) WinCache Extension for PHP
d) Alternative PHP Cache
Qué significa PHP?
PHP: Hypertext Pre-Processor
Qué es PHP Pear?
Es un entorno de desarrollo y sistema de distribución para componentes de código PHP
Cómo se llaman los Objetos de Datos de PHP que facilitan el acceso a BBDD
PHP PDO
También se puede usar otra interfaz ligera similar como mysqli
Señale la manera de proceder en el lenguaje PHP, para poder utilizar dentro de una función una variable que se define globalmente en una página
Se podría declarar la variable como global al principio de la función mediante el uso de la palabra reservada “global” seguido del nombre de la variable que se ha definido en el ámbito global.
utilidades de software disponibles en el mercado orientadas a capa de abstracción de datos, basadas en PHP
a) Doctrine
c) Eloquent (ORM)
d) Propel
La visibilidad de una propiedad, un método o (a partir de PHP 7.1.0) una constante se puede definir anteponiendo a su declaración una de las siguientes palabras reservadas:
Private, public, protected
En PHP, hay constantes mágicas, qué son? di algunas
Son constantes predefinidas, tienen el formato __CONSTANTE__ como.
DIR,LINE,CLASS,METHOD,FUNCTION,TRAIT,NAMESPACE
En php, qué dos formas de imprimir por consola hay?
print(…)
echo …
echo va sin paréntesis
Funciones de cadena en php, qué hacen?
substr()
strcmp()
strpos()
strlen()
strstr()
printf()
preg_replace()
preg_split()
preg_match()
Arrays—-
range()
array_shift()
array_pop()
array_push()
count()
str_split()
substr() ->extra un substring de la cadena. Si se pone un solo valor, saca del inicio hasta ese valor. Si se ponen dos valores saca del valor 1 al valor 2. Si uno de los valores es negativo, significa que busca la posción desde el final
strcmp() -> Comparación segura de cadenas a nivel binario
strpos() -> Última aparición de un substring en un string
strlen() -> Longitud de una cadena
strstr() -> Primera aparición de un substring en un string
printf ->Impresión formateada ->printf(“Hay %u minutos en %s”.PHP_EOL, $minutos, $unidadTiempo);
preg_replace -> Detecta un patrón con una exp reg, y lo reemplaza por otra cadena
preg_split() -> Separa la cadena por el separador localizado con una exp reg
preg_match() -> Encuentra una cadena que cumpla la exp reg
range() -> crea un array dando valores entre un rango y con los saltos indicados -> range(0, 100, 10))
array_shift() -> Desplaza los elmentos hacia la izquierda, eliminando y retornando el primero. Como si el array fuese una pila
array_pop() -> Borra el último elemento
array_push() -> Añade un elemento al final
count() -> cuenta los elementos de un array
str_split() -> trocea una cadena con un separador generando un array
Añadir alguna cosa de Pyhton, hay dos preguntas del año pasado que no habríamos dado.
Mirar que son y categorizar las herramientas
Keras
Mahotas
Openpyxl
Numpy
Keras -> Keras es una API de redes neuronales escrita en lenguaje Python
Mahotas -> Mahotas es una biblioteca de software en lenguaje Python para análisis de imágenes.
Openpyxl -> Librería Python para leer/escribir archivos Excel 2010 xlsx/xlsm/xltx/xltm
Numpy -> NumPy es una biblioteca para el lenguaje de programación Python que da soporte para crear vectores y matrices grandes multidimensionales, junto con una gran colección de funciones matemáticas de alto nivel para operar con ellas
Ver la respuesta correcta y estudiar esas funciones
Ver la respuesta correcta e investigar sobre el tema
Utilizando la clase Gender de la extensión PECL Gender
Varios Phyton
- Uso de llaves e identación
- Formato if
- Cómo declarar variables
- Interpretar variables dentro de las comillas
- Concatenar cadenas
- Función para pedir por consola al usuario introducir un dato
- Cómo se define una función
- Comentario multilínea
- Para hacer un bucle
- Uso de llaves e indentación -> No se ponen llaves, sino que hay que respetar la tabulación o indentado de cuatro espacios
- Para terminar la línea -> Sólo usar un salto de línea, no punto y coma. El punto y coma se usa para poner dos sentencias en la misma línea. Para hacer una sentencia larga que ocupa dos líneas, terminar la primera con \
- Formato if -> if condicion : –> Ver que es sin paréntesis y hay que poner los dos puntos
else: –> También con los dos puntos
no hace falta poner llaves, sólo respetar la tabulación - Cómo declarar variables -> No es necesario declararlas. No se pone su tipo. Si se le asigna otro tipo, cambia de tipo
- Interpretar variables dentro de las comillas -> Se pone la letra f delante de las comillas, y dentro las variables en llaves: print(f “hola {nombre}”)
- Concatenar cadenas -> con el signo más +
- Función para pedir por consola al usuario introducir un dato -> input(“Mensaje para el usuario -> Devuelve el valor introducido.
- Función -> def nombreFuncion(): –> Ver que se pone def y se termina con dos puntos
- Comentario multilínea -> tres dobles comillas o comillas simples seguidas para iniciar el bloque y otras tres para cerrarlo
- Bucle para recorrer una lista -> Las listas son arrays. for persona in personas. Despues no hay que abrir llaves, sólo respetar la tabulación con todas las instrucciones que queramos
Varios Python II
- Cómo se nombran las clases
- cómo se nombran las variables
- Variables especiales del lenguaje
- Caracteres que no admite en los identificadores
- Decoradores, que son y cómo se usan
- Diccionarios, cómo son y como se accede a sus elementos
- Qué es el tipo de dato tupla
- Cómo se nombran las clases -> La primera en mayúscula
- cómo se nombran las variables -> La primera en minúscula o guión bajo o doble guión bajo, esto es que es privada.
- Variables especiales del lenguaje -> Terminan con dos guiones bajos
- Caracteres que no admite en los identificadores -> no admite caracteres de puntuación como @, $ o %.
- Decoradores: Es una función que anida a otra y que se llamará antes de de una tercera función a la que se le pone encima @mi_deocrador. Al llamar a al función decorada con esa etiqueta, se ejecutará primero el decorador
- Diccionarios: son como los object de json. Se puede crear con las llaves como en json directamente o con la función dict() y se accede a sus elementos con dic1.get(clave) o dic1[‘clave’] o dic1[posicion] -> ej. opositor[‘notas’][1]
- La tupla es como una lista, pero inmutable
Ver ejemplos de Python
https://ellibrodepython.com/colecciones-python
Sacar tarjetas de operadores y otras
a