Connect with us

cómo

Cómo usar Enums en PHP 8.1

Published

on

Cómo usar Enums en PHP 8.1

PHP 8.1 finalmente agregará soporte lingüístico para enumias. Enumeres, cortos para enumeraciones, son tipos que solo pueden instasizarse con valores específicos. Se encuentran comúnmente en otros idiomas orientados a objetos, pero anteriormente han requerido que las soluciones de soluciones de usuario de Userland implementen en PHP.

Sintaxis básica

Esto es lo que parece un enumme simple:


enum PostStatus {
    case Published;
    case InReview;
    case Draft;
}

La palabra clave del caso, parte previa de las declaraciones de interruptor, se usa para delinear los valores específicos que acepta el enum. Los valores se hacen referencia de la misma manera que las constantes de la clase:


$published = PostStatus::Published;

Los enumers se comportan de manera similar a las clases e interfaces. Son totalmente compatibles con el sistema tipo, por lo que puede contemplar que una función solo acepta un valor definido en un enumeración:


class BlogPost {
 
    public function __construct(
        public string $Headline,
        public string $Content,
        public PostStatus $Status=PostStatus::Draft) {}
 
}

Aquí hay un ejemplo de usar la clase BlogPost:


// OK
$post = new BlogPost(
    "Example Post",
    "An example",
    PostStatus::Draft
);
 
// TypeError: Argument #3 ($Status) must be of type PostStatus
$post = new BlogPost(
    "Broken Example",
    "A broken example",
    "Submitted"
);


La primera instancia funciona porque su estado $ es un valor válido del PostStatus Enum. En el segundo caso, se pasa una cadena simple como $ estado, que está prohibido ya que el valor debe definirse dentro de PostStatus.

Los casos enum son representados como constantes en el objeto enumio. Esto significa que puede usarlos como valores estáticos y como parte de expresiones constantes. El constructor BlogPost muestra un caso de enumeración que se está utilizando como un valor de parámetro predeterminado, donde el estado $ se establece automáticamente en el borrador cuando la persona que llama no proporciona ningún valor.

Puede acceder a todos los valores disponibles en un Enum usando sus casos.


PostStatus::cases();
// [PostStatus::Published, PostStatus::InReview, PostStatus::Draft]

PUERTOS VS BACKED ENUMES

El poststatus enumio de arriba es un enumio puro. Solo contiene afirmaciones de casos, sin datos adicionales. PHP también le permite adjuntar un valor a los casos de enumeración, creando un enumeración respaldado.


enum PostStatus : string {
    case Published = "S1";
    case InReview = "S2";
    case Draft = "S3";
}


Aquí se ha modificado el poststatus enum para crear un enumio respaldado. El Typehint en la definición de Enum se estipula que cada caso tiene un valor de cadena asignado a él. En este ejemplo, asumimos que cada estado de publicación con nombre tiene un identificador corto asociado. Puede ser este identificador que se guarde en la base de datos cuando se persiguen las publicaciones.

Puede acceder a los valores respaldados a través de la propiedad de valor en caso de instancia:


class BlogPostRepository {
 
    public function save(BlogPost $Post) : void {
        $this -> insert(
            "blog_posts",
            [
                "headline" => $Post -> Headline,
                "content" => $Post -> Content,
                "status" => $Post -> Status -> value
            ]
        );
    }
 
}
 
$post = new BlogPost("Example", "Demo", PostStatus::Published);
(new BlogPostRepository()) -> save($post);

Este ejemplo establecería el valor del campo de estado persistido en S1, en función de la versión respaldada del PostStatus enum que se muestra arriba.

Los enumeros respaldados solo aceptan cadenas y enteros como valores. No es posible utilizar la cadena de tipo de unión | INT tampoco. Además, cada caso necesita un valor único, el siguiente ejemplo no está permitido:


enum PostStatus : string {
 
    case Published = "S1";
    case Draft = "S1";
 
}

PHP proporciona un método de utilidad en los enumeros para crear una instancia de un valor respaldado:


// fetch the blog post from earlier from the database
// the "status" field = S1
$status = PostStatus::from($record["status"]);

El método de () hidratará las instancias de los casos de valor. En este ejemplo, S1 se remonta a la caja publicada, y su código recibe una instancia de PostStatus :: Publicado.

de () lanza un ValorError si el valor de entrada no es válido; En los escenarios, donde sabe que el valor podría no ser utilizable, en su lugar se puede usar el método de prueba alternativa (). Esto devuelve nulo cuando no hay ninguna coincidencia, en lugar de lanzar el error.

Añadiendo métodos a los enumeros

¡Como enumanos se basan en clases, también puede agregar métodos!


enum PostStatus {
 
    case Published;
    case Draft;
 
    public function isPubliclyAccessible() : bool {
        return ($this instanceof self::Published);
    }
 
}

Esto le permite mantener un comportamiento específico de los casos dentro de su enumeración, en lugar de duplicarlo en su base de código.

Enums también pueden implementar interfaces:


enum PostStatus implements PublicAccessGatable {
 
    case Published;
    case Draft;
 
    public function isPubliclyAccessible() : bool {
        return ($this instanceof self::Published);
    }
 
}

Ahora puede pasar una instancia de PostStatus a cualquier cosa que acepte un PublicCessccessgatable:


class UserAuthenticator {
 
    function shouldAllowAccess(PublicAccessGatable $Resource) : bool {
        return ($this -> User -> isAdmin() || $Resource -> isPubliclyAccessible());
    }
 
}
 
$auth = new UserAuthenticator();
 
// get a blog post from the database
if (!$auth -> shouldAllowAccess($post -> Status)) {
    http_response_code(403);
}

No hay restricciones sobre lo que puede hacer con los métodos de Enumio: son métodos regulares de PHP, después de todo, pero en general esperaría que realicen algún tipo de comparación contra el caso de la instancia, luego devuelva un valor estático. Los enumeres pueden usar rasgos, por lo que puede tirar de los métodos existentes que también ha abstraído de esta manera.

Puede utilizar métodos públicos, protegidos y privados en enumias, aunque protegidos y privados tienen el mismo efecto. Los enumnos no pueden extenderse, por lo que la privada es efectivamente redundante. No puedes agregar un constructor o destructor tampoco. Los métodos estáticos son compatibles y se pueden llamar a la clase de enumeración o en sus casos.

Constantes

Enums también puede tener sus propias constantes, ya sea como valores literales regulares o una referencia a un caso enumio:


enum PostStatus {
 
    case Published;
    case Draft;
 
    public const Live = self::Published;
    public const PlainConstant = "foobar";
 
}

Esto posee el potencial de crear confusión a medida que se utiliza la misma sintaxis para acceder a los casos (instancias de enumeración) y las constantes:


$published = PostStatus::Published;
$plain = PostStatus::PlainConstant;

Solo $ Publicado satisfaría un poststatus typhint, ya que $ se refiere a un valor escalar simple.

¿Cuándo usar Enums?

Los enumnos son para ocasiones en las que necesita flexibilidad en el valor que puede tomar una variable, pero solo entre un conjunto predeterminado de casos posibles.

La clase de publicación del blog que se ejecuta a través de esta publicación es un ejemplo clásico. Las publicaciones solo pueden estar en uno de un conjunto conocido de estados, pero PHP anteriormente no tuvo una forma directa de lograr esto.

En versiones anteriores, es posible que haya utilizado este enfoque:


class PostStatus {
    const Published = 0;
    const Draft = 1;
}
 
class BlogPost {
    public function __construct(
        public string $Headline,
        public int $Status
    ) {}
}
 
$post = new BlogPost("My Headline", PostStatus::Published);

El problema aquí es que $ $ estado realmente acepta cualquier entero, por lo que la siguiente llamada sería perfectamente válida:


$post = new BlogPost("My Headline", 9000);

Además, BlogPost y Poststtatus están completamente separados, no hay forma de que alguien que lea BlogPost pueda aprender la gama de valores que se acepta $ en realidad. Si bien estos problemas se pueden mitigar utilizando los tíos de Docblock apropiados, o los paquetes de terceros “falsos”, todos agregan capas adicionales alrededor de un concepto que otros idiomas de programación hacen simples.

Agregar enumias nativas a PHP es un paso que ayuda a redondear el sistema de tipo del idioma. Finalmente, puede limitar los valores permisibles de una manera que mantiene a todos en la misma página. Si pasa un valor no válido, obtendrá un error de tiempo de ejecución. Su IDE puede ayudarlo mejor a suministrar valores correctos, ya que sabrá que $ $ sólo acepta tres opciones, en lugar de “cualquier entero”.

Conclusión

Los enumers abordan algunos puntos de dolor de desarrolladores comunes cuando se trabaja en PHP. Hacen posible conjustar los parámetros, los valores de retorno y las propiedades deben ser uno de un conjunto de opciones predeterminadas.

Los enumeres son entidades de base de código flexibles que puede mantenerse simple en forma pura, o extenderse con valores respaldados, implementaciones de interfaz y métodos personalizados. Los enumers se comportan de manera similar a los objetos regulares en la mayoría de los casos y soportan características de la clase, como __call (), __InVoke y :: Class.

Puedes enumeraciones introspectas con la nueva función enum_exists () y la clase de reflexión de reflejo. Además, los enumeran implementan dos nuevas interfaces, Unindenum (en el caso de enumias puras) y BackedEnum (para enumias con valores respaldados). Estos se pueden utilizar en un código de marco genérico que funciona con cualquier enumeración. Las interfaces no pueden ser implementadas manualmente por el código de Userland.

Enums aterrizará en PHP como parte de la versión 8.1 en noviembre de 2021. Ya están disponibles en las últimas BETA BUMS. PHP 8.1 también enviará varias características de conveniencia, incluidas las propiedades inmediatas y los tipos de intersección.

Advertisement

cómo

Cómo arreglar imágenes/fotos borrosas en teléfonos Android

Published

on

By

Cómo arreglar imágenesfotos borrosas en teléfonos Android

Por qué tus fotos pueden salir borrosas (borrosas) Hay varios factores que las causan, entre ellos: Al tomar fotos es inestable (tembloroso), el objeto que estás fotografiando es un objeto en movimiento, la lente de la cámara está sucia, la aplicación de la cámara no está funcionando correctamente y varias otras causas.

Cómo arreglar imágenes borrosas tomadas desde un teléfono Android:

2. Usa una aplicación para arreglar fotos borrosas

La mayoría de las aplicaciones de edición de imágenes incluyen una función útil para mejorar la nitidez de las fotos; esta función puedes utilizarla para mejorar tus fotos de Android.

En cuanto al método, lo he comentado en un artículo anterior aquí.

O también puedes probar otras aplicaciones como VanceAI y Neural. amor, Let’s Enhance y MyEdit

2. Toma precauciones para que las fotos no salgan borrosas

Consejos para evitar imágenes borrosas en teléfonos Android. Hay varias cosas que puedes intentar para evitarlo, entre ellas:

  • Limpia la lente de tu teléfono
  • Tome fotografías en mejores condiciones de iluminación.
  • Elimine el caché de la aplicación Cámara, vaya al menú: Configuración > Almacenamiento > Dispositivos > Datos en caché > Borrar datos en caché > Aceptar.
  • En la medida de lo posible, evite funciones de zoom excesivas al tomar fotografías con la cámara de un teléfono celular Android.

Continue Reading

cómo

Cómo arreglar Spotify AI DJ que no se muestra

Published

on

By

Cómo arreglar Spotify AI DJ que no se muestra

Como servicio de transmisión de música, Spotify ha revolucionado la forma en que escuchamos música. Una de sus funciones más interesantes es AI DJ, que crea listas de reproducción personalizadas según sus preferencias musicales. Sin embargo, a veces los usuarios encuentran un problema en el que la función AI DJ no aparece. En este artículo, veremos una guía paso a paso sobre cómo solucionar este problema.

Paso 1: buscar actualizaciones

Lo primero que debe hacer es verificar si su aplicación Spotify está actualizada. Si no, actualícelo a la última versión. Esto puede resolver cualquier falla o error que esté causando que desaparezca la función AI DJ.

Paso 2: Borrar caché

Borrar el caché en su aplicación Spotify también puede ayudar a resolver este problema. Para hacer esto, vaya a la configuración de su aplicación y seleccione “Almacenamiento”. Desde allí, toque “Borrar caché” y reinicie su aplicación.

Paso 3: deshabilite el ahorro de batería

A veces, la configuración del ahorro de batería puede interferir con el rendimiento de la aplicación. Para desactivar el ahorro de batería, ve a la configuración de tu teléfono y selecciona “Batería”. Desde allí, deshabilite cualquier modo de ahorro de batería que esté habilitado.

Paso 4: Verifique la conexión a Internet

Asegúrate de tener una conexión a Internet estable. Si su conexión a Internet es lenta o inestable, es posible que la aplicación no pueda cargar la función AI DJ.

Paso 5: verifique la configuración del país

La función AI DJ de Spotify no está disponible en todos los países. Si está utilizando la aplicación en un país donde esta función no está disponible, es posible que no aparezca en su aplicación. Puede consultar la lista de países donde la función AI DJ está disponible en el sitio web de Spotify.

Paso 6: Verifique la suscripción

La función AI DJ solo está disponible para los suscriptores de Spotify Premium. Si está utilizando la versión gratuita de la aplicación, es posible que no pueda acceder a esta función.

Paso 7: Vuelva a instalar la aplicación

Si ninguno de los pasos anteriores funciona, puede intentar desinstalar y volver a instalar la aplicación. Esto restablecerá la aplicación a su configuración predeterminada, lo que puede resolver cualquier problema que estuviera causando la desaparición de la función AI DJ.

Paso 8: reinicie su dispositivo

Si el problema persiste, intente reiniciar su dispositivo. Esto puede ayudar a solucionar cualquier problema de software que pueda estar causando el problema. Aquí está cómo hacerlo:

  • Mantenga presionado el botón de encendido en su dispositivo.
  • Toca la opción “Reiniciar” cuando aparezca en la pantalla.
  • Espere a que su dispositivo se reinicie y luego intente abrir la aplicación Spotify nuevamente.

Paso 9: Póngase en contacto con el soporte de Spotify

Si el problema persiste después de intentar todos los pasos anteriores, es hora de ponerse en contacto con el soporte de Spotify. Puede comunicarse con ellos a través de su sitio web y lo guiarán para resolver el problema.

Conclusión

La función AI DJ de Spotify es una excelente manera de descubrir nueva música según sus preferencias. Sin embargo, puede ser frustrante si no aparece en su aplicación. Siguiendo los pasos descritos anteriormente, debería poder resolver el problema y volver a disfrutar de su música. Recuerde buscar actualizaciones, borrar caché, deshabilitar el ahorro de batería, verificar la conexión a Internet, la configuración del país y la suscripción, y reinstalar la aplicación. Si todo lo demás falla, no dude en ponerse en contacto con el soporte de Spotify.

Continue Reading

cómo

Cómo superar el código de error de vapor e84

Published

on

By

Cómo superar el código de error de vapor e84

El problema del código de error de Steam e84 generalmente ocurre cuando estamos a punto de iniciar sesión en la plataforma Steam, este error también va acompañado de Algo salió mal al intentar iniciar sesión.

Si actualmente está experimentando el mismo error. Entonces, en este artículo, le proporcionaremos la solución de reparación con la forma más sencilla de solucionarlo.

1. Eliminar archivos temporales

Los archivos temporales en su computadora a veces pueden hacer que Steam funcione incorrectamente. Uno de ellos es el código de error de Steam e84, así que intenta eliminar los archivos temporales de tu computadora. Para hacerlo, sigue estos pasos:

  • Presione la tecla de Windows + R, luego escriba el comando %temp% y presione la tecla Enter/OK
  • Luego elimine todos los archivos y carpetas en la carpeta temporal
  • Después de eso, intente reiniciar su computadora e intente abrir Steam, ¿sigue ahí el código de error E84?

La eliminación de todas estas carpetas no causará errores ni dañará la computadora o los programas de su computadora, porque todos los archivos en esta carpeta temporal son archivos temporales que ya no se necesitan.

2. Actualice la aplicación Steam

Compruebe si hay una actualización disponible para la aplicación Steam, si la hay, actualice inmediatamente. Y una vez completada la actualización, intente abrir la aplicación Steam nuevamente.

3. Vuelva a instalar la aplicación Steam

Si los dos métodos anteriores no funcionan, es posible que haya algunos archivos del sistema Steam problemáticos o dañados. La mejor solución es reinstalar la aplicación Steam.

Continue Reading

Trending

Share via
Copy link
Powered by Social Snap