Enlaces útiles búsqueda de empleo y startup

Pulir el perfil de linkedin:

https://elpais.com/tecnologia/2018/10/24/actualidad/1540372617_728750.html

Aumenta la demanda de profesionales en el sector tecnológico:

https://elpais.com/ccaa/2018/12/13/catalunya/1544724477_092330.html#?ref=rss&format=simple&link=guid

Los libros que tienes que leer para convertirte en programador de videojuegos:

https://github.com/miloyip/game-programmer

Como empezar a levantar una idea emprendedora:

Para trabajo remoto:

https://weworkremotely.com/

Traits en PHP


<?php

trait HTML {
public function close($tag){
return str_replace("<", "</", $tag);
}
public function wrap($global, $local,$tabla) {
$res = $global;
foreach ($tabla as $valor) {
$res .= $local.$valor.$this->close($local);
}
return $res . $this->close($global);
}

public function lista($tabla) {

return $this->wrap("<ul>","<li>",$tabla);
}

//Crear una función select que nos cree un select con los elementos de la tabla que le pasemos
public function select($tabla) {
return $this->wrap("<select>","<option>",$tabla);
}

}

//Crear un trait Tablas que incorpore una función duplicados que nos devuelva un array con los elementos duplicados

trait Tablas{
public function duplicados($tabla){
$res= array_count_values($tabla);
$aux=[];
foreach($res as $c=>$v){
if($v>1){
$aux[]=$c;
}
}
return $aux;
}

public function duplicadosPro($tabla){
return array_unique(array_diff_key($tabla, array_unique($tabla)));
}
}

class EjemploTrait {

use HTML,Tablas;

public $datos = [1, 2, 3,2, 4, 2,3, "hola"];

function __toString() {

return $this->lista($this->duplicadosPro($this->datos));
}

}

$a = new EjemploTrait();

echo $a;

Clase Aula con get y set


class Aula {

//propiedades nombre de tipo string y capacidad de tipo entero privadas
//Crear constructor con nombre obligatorio y capacidad opcional (por defecto 15)
//Crear getters y setters: El nombre no puede estar vacío y la capacidad entre 10 y 100
private $nombre;
private $capacidad;

function __construct(string $nombre, int $capacidad = 15) {
$this->setNombre($nombre);
$this->setCapacidad($capacidad);
}

function getNombre() {
return $this->nombre;
}

function getCapacidad() {
return $this->capacidad;
}

function setNombre(string $nombre) {
if (!empty($nombre)) {
$this->nombre = $nombre;
} else {
throw new Exception('El nombre no puede estar vacío');
}
}

function setCapacidad(int $capacidad) {
if ($capacidad < 10 || $capacidad > 100) {
throw new Exception('Capacidad entre 10 y 100');
} else {
$this->capacidad = $capacidad;
}
}

}

try {
$a = new Aula("Nombre");
$a->setCapacidad(500);
} catch (Exception $ex) {
echo $ex->getMessage() . " en la línea " . $ex->getLine();
}