Archive for Desarrollo web

noviembre 7th 2018

Como tener un repositorio personalizado no asociado a una entidad en Symfony

Número de lecturas: 274
{lang: 'es-419'}

Acá esta el enlace en español en stackoverflow: https://es.stackoverflow.com/questions/211532/como-tener-un-repositorio-personalizado-no-asociado-a-una-entidad-en-symfony

Esta pregunta la coloque en la versión de ingles de stackoverflow: https://stackoverflow.com/questions/53090535/having-a-custom-repository-not-associated-to-an-entity-in-symfony

Luego de varias preguntas pude tener la respuesta que necesitaba, sobre la misma genere un resumen, espero les sirva: https://stackoverflow.com/a/53176838/2400373

Uso symfony 3.3.x . De esta manera solucione el problema

Archivo service.yml:

//service.yml
services:
     app.queriesmanager:
          class: AppBundle\Services\QueriesManager
          autowire: true

Archivo AppBundle\Services\QueriesManager.php

//AppBundle\Services\QueriesManager.php
<?php
 
namespace AppBundle\Services;
 
use Doctrine\ORM\EntityManagerInterface;
 
class QueriesManager  {
    protected $entityManager;
 
    public function __construct(EntityManagerInterface $entityManager) {
        $this->entityManager = $entityManager;
    }
 
    public function searchAdvance($var,$var1,$var2,$var3)
    {
        $dql1 = "";
        $dql2 = "";
        $dql = "SELECT pl
                      FROM BackendBundle:Products p
                      JOIN BackendBundle:Pricelist pl
                      WITH p.peachitemid =  pl.peachitemid
                      WHERE p.hasimages =  1
                      AND p.active = 'FALSE'
                      AND p.imagesamazon1 = 1
                      AND p.imagesamazon2 = 1
                      AND (p.descriptionforsales like '%$var%' OR p.itemid like '%$var%')";
 
        if ($var1 != "select") {
            $dql1 = " AND p.newcategory='$var1' AND p.newsubcategory='$var2' ";
        }
        if ($var3 == "150") {
            $dql2 = " AND pl.retail < 150";
        }
        if ($var3 == "200") {
            $dql2 = " AND pl.retail > 150 AND pl.retail < 250 ";
        }
        if ($var3 == "250") {
            $dql2 = " AND pl.retail > 250 ";
        }
 
        $dql1 .= $dql2;
        $dql .= $dql1;
        $query=$this->entityManager->createQuery($dql);
        $query = $query->getResult();
        return $query;
 
    }
}

Archivo DefaultController.php

//Use the service in controller
$query=$this->get('app.queriesmanager')->searchAdvance($var,$var1,$var2,$var3);

Espero les pueda ayudar.

octubre 11th 2018

Crear alias para comandos en consola (Mac OSX)

Número de lecturas: 720
{lang: 'es-419'}

Algo que suelo usar mucho en equipos Linux son los “alias”, de cara a acortar comandos que tecleo muy frecuentemente. Obviamente sólo es necesario cuando trabajamos con la consola / terminal.

Hoy estoy “plataformando” un iMac y quiero hacer lo mismo, y puesto que Mac OSX, o Darwin, está basado en Linux, realmente no difiere en nada de un sistema Linux tradicional (depende de la distribución usada).

Vamos a crear algunos alias de ejemplo. Para ello abriremos una consola de terminal y teclearemos los comandos siguientes:

cd ;
nano .bash_profile

Dentro del archivo .bash_profile (que por defecto no existe y por lo tanto estará vacío) introduciremos tres alias de ejemplo:

alias ll='ls -la'
alias duh='du -sh'
alias rmd='sudo find . -name ".DS_Store" -depth -exec rm {} \;'

Para salir pulsaremos CONTROL+X y confirmaremos los cambios.

Una vez estemos de nuevo en la consola, ejecutaremos el comando “source” para que se lea el archivo editado sin necesidad de reabrir la consola del terminal.

source .bash_profile

A partir de ahora, podemos teclear “ll” en una consola y se ejecutará el comando “ls -la” en su lugar.

Aunque son bastante auto-descriptivos, os comento lo que hace el último de ellos (“rmd”): borrar todos los dichosos .DS_Store de la carpeta en la que esté situado en adelante.

Podéis incluir tantos alias como necesitéis y estarán siempre disponibles cuando abráis una consola del terminal.

agosto 22nd 2018

Como Activar PHPStorm version 2018.2

Número de lecturas: 6102
{lang: 'es-419'}

Como muchos conocen PHPStorm es el ID ideal para desarrollar en PHP (Uso PHPStorm y Visual Studio Code).

Para tener una versión con el registro se debe realizar los siguientes pasos:

Para Usuarios Windows:
Ir a C:\Windows\System32\drivers\etc\hosts
Agregar esta linea “0.0.0.0 account.jetbrains.com” (sin comillas)

Para usuarios Linux o MAC
Abrir /etc/hosts file. (ir a la terminal and escribir: sudo nano /etc/hosts)
Agregar esta linea “0.0.0.0 account.jetbrains.com” (sin comillas)

Reiniciar PHPStorm y copiar y pegar el siguiente código:

K71U8DBPNE-eyJsaWNlbnNlSWQiOiJLNzFVOERCUE5FIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiSUkiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJSUzAiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJXUyIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IlJEIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiUkMiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJEQyIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IkRCIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiUk0iLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJETSIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IkFDIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiRFBOIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiR08iLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJQUyIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IkNMIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiUEMiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJSU1UiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifV0sImhhc2giOiI4OTA4Mjg5LzAiLCJncmFjZVBlcmlvZERheXMiOjAsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZX0=-Owt3/+LdCpedvF0eQ8635yYt0+ZLtCfIHOKzSrx5hBtbKGYRPFDrdgQAK6lJjexl2emLBcUq729K1+ukY9Js0nx1NH09l9Rw4c7k9wUksLl6RWx7Hcdcma1AHolfSp79NynSMZzQQLFohNyjD+dXfXM5GYd2OTHya0zYjTNMmAJuuRsapJMP9F1z7UTpMpLMxS/JaCWdyX6qIs+funJdPF7bjzYAQBvtbz+6SANBgN36gG1B2xHhccTn6WE8vagwwSNuM70egpahcTktoHxI7uS1JGN9gKAr6nbp+8DbFz3a2wd+XoF3nSJb/d2f/6zJR8yJF8AOyb30kwg3zf5cWw==-MIIEPjCCAiagAwIBAgIBBTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE1MTEwMjA4MjE0OFoXDTE4MTEwMTA4MjE0OFowETEPMA0GA1UEAwwGcHJvZDN5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQC9WZuYgQedSuOc5TOUSrRigMw4/+wuC5EtZBfvdl4HT/8vzMW/oUlIP4YCvA0XKyBaCJ2iX+ZCDKoPfiYXiaSiH+HxAPV6J79vvouxKrWg2XV6ShFtPLP+0gPdGq3x9R3+kJbmAm8w+FOdlWqAfJrLvpzMGNeDU14YGXiZ9bVzmIQbwrBA+c/F4tlK/DV07dsNExihqFoibnqDiVNTGombaU2dDup2gwKdL81ua8EIcGNExHe82kjF4zwfadHk3bQVvbfdAwxcDy4xBjs3L4raPLU3yenSzr/OEur1+jfOxnQSmEcMXKXgrAQ9U55gwjcOFKrgOxEdek/Sk1VfOjvS+nuM4eyEruFMfaZHzoQiuw4IqgGc45ohFH0UUyjYcuFxxDSU9lMCv8qdHKm+wnPRb0l9l5vXsCBDuhAGYD6ss+Ga+aDY6f/qXZuUCEUOH3QUNbbCUlviSz6+GiRnt1kA9N2Qachl+2yBfaqUqr8h7Z2gsx5LcIf5kYNsqJ0GavXTVyWh7PYiKX4bs354ZQLUwwa/cG++2+wNWP+HtBhVxMRNTdVhSm38AknZlD+PTAsWGu9GyLmhti2EnVwGybSD2Dxmhxk3IPCkhKAK+pl0eWYGZWG3tJ9mZ7SowcXLWDFAk0lRJnKGFMTggrWjV8GYpw5bq23VmIqqDLgkNzuoog==

Esto a mi me funciono.

Si no se activa pueden utilizar estas licencias de servidores:
https://s.tuzhihao.com:666
http://206.189.241.206
http://52.24.152.36:8000
http://actiosaurus.men
http://actiosaurus.review/
http://cronus.allowed.org/

julio 2nd 2018

Codigo de archivo .sh para actualizar un servidor con git (Symfony)

Número de lecturas: 834
{lang: 'es-419'}

Para tener control el código fuente ahora se debe y se tiene que utilizar git como buena práctica, luego para actualizar y automatizar este proceso es adecuado utilizar un archivo ejecutable en un servidor en mi caso: ubuntu.

El código seria el siguiente para el archivo actualiza.sh

cd /var/www/html/hackeruna
git pull origin master
sudo chmod -R 777 var/
php bin/console doctrine:schema:update --force
php bin/console cache:clear --env=prod --no-debug
php bin/console assets:install
sudo chmod -R 777 var/

Luego para utilizarlo basta con colocar:

# ./actualizar.sh

El código ingresa al repositorio, lo actualiza desde la rama principal, borra la cache, actualiza la base de datos, instala los assets y agrega los permisos necesarios.