Archive for PHP

February 14th 2019

Como hacer tu página personal en github

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

Desde hace unos años utilizaba about.me pero cuando ingrese ya no me gusto la interfaz, me parece que hacen enfasis en vender y poco resaltan tu perfil.

Busque opciones y en dev.to encontre un proyecto interesante para crear un perfil en github utilizando el servicio de páginas. Este servicio también puede servir para generar un sitio para tu proyecto.

Para personalizar mi sitio web segui los siguientes pasos:
1.- Crear página web con github siguiendo estos pasos: https://pages.github.com/
Los requisitos son tener una cuenta en github y crear un nuevo respositorio de esta forma:
nombreusuario.github.io

Luego ejecutar este comando:

$git clone https://github.com/username/username.github.io
$cd username.github.io
$echo "Hello World" > index.html
$git add --all
$git commit -m "Initial commit"
$git push -u origin master

Luego clone este proyecto:
https://github.com/flexdinesh/dev-landing-page y actualice el contenido de la carpeta

Finalmente personalizas el codigo fuente, en mi caso agregue, redes sociales, mail, web personal, link de whatsapp, fotografia y finalmente Bootstrap.

El resultado final es un sitio agradable, funcional y responsive.
http://juanitourquiza.github.io/

Si desean crear su página web personal pueden seguir estos pasos y clonar mi proyecto en github.
https://github.com/juanitourquiza/juanitourquiza.github.io

February 1st 2019

¿ Cómo subir imagen desde VueJS a Symfony con Axios?

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

Luego de tener instalado VueJS en este caso con webpack se agrega el componente:

//CargaFoto.vue
<div class="hello">
<h1>{{ msg }}</h1>
<div class="container">
<div class="large-12 medium-12 small-12 cell"><label>File <input id="file" type="file" /> </label> <button>Submit</button></div>
</div>
</div>
<script>
    import axios from 'axios'
 
    export default {
        name: "CargaFoto",
        data() {
            return {
                msg: "Cargar Imagen de Perfil",
                file: ''
                //selectedFile: null
            };
        },
        methods: {
            submitFile(){
                /*
                        Initialize the form data
                    */
                let formData = new FormData();
 
                /*
                    Add the form data we need to submit
                */
                formData.append('file', this.file);
 
                /*
                  Make the request to the POST /single-file URL
                */
                axios.post( '/usuario/jsonimagen',
                    formData,
                    {
                        headers: {
                            'Content-Type': 'multipart/form-data'
                        }
                    }
                ).then(function(){
                    console.log('SUCCESS!!');
                })
                    .catch(function(){
                        console.log('FAILURE!!');
                    });
            },
 
            /*
              Handles a change on the file upload
            */
            handleFileUpload(){
                this.file = this.$refs.file.files[0];
            }
        }
    };
</script>
 
<!-- Add "scoped" attribute to limit CSS to this component only -->
 
<style>
    #fileInput {
        display: none;
    }
    h1,
    h2 {
        font-weight: normal;
    }
    ul {
        list-style-type: none;
        padding: 0;
    }
    li {
        display: inline-block;
        margin: 0 10px;
    }
    a {
        color: #42b983;
    }
    .my-8 {
        margin-top: 4rem;
        margin-bottom: 4rem;
    }
</style>

 

En el archivo donde se recoge los datos quedo asi el controlador:

//src/UsuarioController.php
/**
 * @return JsonResponse
 * @Route("/jsonimagen", name="jsonimagen", methods="POST")
 
 */
public function jsonimagen(Request $request):JsonResponse
{
    $usuario = $this-&gt;getUser();
    $data = $request-&gt;files-&gt;get('file');
    $fileName = $usuario.'.'.$data-&gt;guessExtension();
    // moves the file to the directory where usuarios are stored
    $data-&gt;move(
        $this-&gt;getParameter('usuarios_directorio'),
        $fileName
    );
    echo $data; exit;
    return $this-&gt;json($data);
}

Tambien configure la ruta donde se va a cargar las imagenes en el archivo

//services.yaml
parameters:
    locale: 'en'
    usuarios_directorio: '%kernel.project_dir%/public/uploads/usuarios'

Acá se puede ver la imagen cargada en esta captura.

 

Referencia

December 18th 2018

Como mirar las rutas de Symfony 4

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

Para poder ver todas las rutas de Symfony 4 basta con ejecutar este comando:

$ php bin/console debug:router

El resultado seria algo parecido a lo siguiente:

 

 

 

Más información:
https://symfony.com/doc/current/routing.html#listing-all-of-your-routes

November 7th 2018

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

Número de lecturas: 998
{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.