Magento2 estructura raiz

Magento2 Woocommerce Python, Unix, NodeJS

Magento2 estructura raiz

abril 18, 2024 Tales of Ultratumba 0

• Coding standards: Magento maneja alto nivel de Estandar de Codificación PHP, que incluye  

PSR-0 Autologin estandar,

PSR-1 Código Basico estandard,

PSR-2 (Codigo de Estilos),

PSR-3, Interfaz de Logeo

PSR-4. Auto ejecutador estandar

de ésta forma se puede tener una estructura de progrmación mas similiar y entendible para revisar, actualizar y consultar un programa en PHP.

• Composer: Composer es la dependencia que provee a Magento las librerias que requiere.
• HTML: HTML5 es soportado incluso fuera del entorno Magento2.
• CSS: Magento soporta CSS3 con su particular creador IN-BUILD LESS CSS .
• jQuery: jQuery es una  plataforma cross-platform JavaScript  para simplificar el uso de  Framework DOM.
• RequireJS: RequireJS es una herraimenta  JavaScript para agregar / cargar archivos modulares lo que permite acelerar los eventos de ejecucion y mejorar la calidad visual.
• Librerias de Terceros:  Zend Framework y Symfony.
• Servicio Apache or Nginx: Soporta ambos Apache and Nginx  HTTP servers.

Depende de muchos factores determinar cual es mejor usar en una configuración VPS-SERVER , y la decision está en función del uso y Carga que podrá tener cada uno comparado con el Recurso (Equipo servidor, versión Operativa Linux o Azure, etc).Magento funciona con Apache 2.2 , 2.4 y mayor y  Nginx con  1.7 o mayor.
• MySQL: MySQL es la Base de Datos por default, pero para las versiones nuevas Magento-Adobe Cloud, sólo acepta MARIADB como éstandar de base de datos, ambas siguen siendo un RDBMS.
• MTF: Magento Testing Framework (MTF) permite la creación de version TEST para medir el  performance, funcionalidad, etc que puedes ver en la siguiente liga https://github.com/magento/mtf

ESTRUCTURA RAIZ DE MAGENTO:

.htaccess
• .htaccess.sample
• .php_cs
• .travis.yml
• CHANGELOG.md
• CONTRIBUTING.md
• CONTRIBUTOR_LICENSE_AGREEMENT.html
• COPYING.txt
• Gruntfile.js
• LICENSE.txt
• LICENSE_AFL.txt
• app
• bin
• composer.json
• composer.lock
• dev
• index.php

lib
• nginx.conf.sample
• package.json
• php.ini.sample
• phpserver
• pub
• setup
• update
• var
• vendor

aqui te explico en cada sección del arbol de programas Magento2 su importancia y acción de ejecución para que puedas comprender la función básica de operación:

Folder: app/etc/di.xml

(Dependency Injection)

Contiene varias asignaciones de clases o preferencias para interfaces globales, particulares e individuales en todo el manejo de recursos en Magento2.

Folder: var/magento/language-*

es donde residen los idiomas registrados. Aunque cada módulo puede declarar sus propias traducciones en aplicación/código/
{VendorName}/{ModuleName}/i18n/, Magento eventualmente recurrirá a su propio módulo individual llamado i18n en caso de que las traducciones no se encuentren en el módulo personalizado o dentro del tema-directorio.

Folder: bin

es donde podemos encontrar el archivo magento. El archivo magento es un script diseñado para ejecutarse desde una consola. Una vez activado mediante el comando php bin/magento , ejecuta una instancia de la aplicación MagentoFrameworkConsoleCli,
presentándonos una gran cantidad de opciones de consola.

Podemos usar el script magento para habilitar/deshabilitar el caché, habilitar/deshabilitar módulos, ejecutar un indexador y hacer muchas otras cosas.

Folder: lib

comprende dos subdirectorios principales, a saber, el código de la biblioteca PHP del lado del servidor, y las fuentes que se encuentran en lib/internal y las bibliotecas JavaScript del lado del cliente que se encuentran en lib/web.

Folder: pub

es donde se encuentran los archivos expuestos públicamente. Este es el directorio que debemos establecer como raíz al configurar Apache o Nginx.

 Folder pub/index.php

es lo que se activa cuando se abre en el Navegador una sesion Magento2

Folder var

es donde se crea el tipo de grupo de archivos generado dinámicamente, como caché, registro y algunos otros. Deberíamos poder eliminar el contenido de esta carpeta en cualquier momento y hacer que Magento lo vuelva a crear automáticamente.

Folder: vendor

es donde se encuentra la mayor parte del código. Aquí es donde podemos encontrar varios códigos de proveedores externos, módulos, temas y paquetes de idiomas de Magento. Si profundizas en este directorio, verás la siguiente estructura:

.htaccess
• autoload.php
• bin
• braintree
• composer
• doctrine
• fabpot
• justinrainbow
• league
• lusitanian
• magento
• monolog
• oyejorge
• pdepend
• pelago
• phpmd
• phpseclib
• phpunit
• psr
• sebastian
• seld
• sjparkinson
• squizlabs
• symfony
• tedivm
• tubalmartin
• zendframework

 

This will close in 45 seconds

PROGRAMACION POR OBJETOS - TESTER NIVEL INTERMEDIO:

CONSUMO DE RECURSOS API DESDE UN ERP:

Instrucciones:

Revisa y corrige y completa del siguiente Objeto las lineas y sentencias con error para poder  consumir de forma correcta los recursos API del Proveedor X MAYORISTA en el cual nos proporciona como medio de acceso-peticion

LA URL-ERP asi:  "../API/CATALOGO/ID.."

En cada PETICION HTTP-POST deberás incluir en EL TOKEN-AUTORIZACION en formato JSON previamente EMPACADO con seguridad de 64bits, quedando tu funcion asi dentro de una CLASE (OBJETO) LLAMADO:

class APIMayoristaX {

return function _get_Token_API () {

(incluir function del alogirtmo Hass)($data_arreglo[

"user" => USERKEY,

"paswd" => PASSKEY

};

public function _get_API_Productos() {

$filto = [

"sku" => valor,

Nombre => valor,

Precio => valor

existencias => valor

];

$token = _get_Token_API ();

return $this->get_CatalogoAPI_Inventario($token, $filtro);

}

}

 

This will close in 0 seconds

PROGRAMACION POR OBJETOS - TESTER NIVEL FRAMEWORK:

CONSUMO DE RECURSOS EN CODEIGNITER:

Instrucciones:

1.- Asumimos que deseas APLICAR LOS REGURSOS (desdeController) en donde vas a consumir :

: LIBRERIAS (LIBRERY y UNA BASE DE DATOS (DATABASE) tanto de Config como de Model

HAZ AQUI UN OBJETO llamado CLASS PRODUCTOS para demostrar la llamada y uso de recursos.

 

This will close in 0 seconds

PROGRAMACION POR OBJETOS - TESTER NODEJS OOP:

Asumimos que cuentas con un JS TOKEN que va a hacer conexion con una BASE DE DATOS (MSSQL):

cómo agregarias un OBJETO-JS en forma de CLASE para llamar a la base de datos y que puedas declarar METODOS de : consulta, actualizacion , borrado en la BASE DE DATOS ?

te doy un TIP:

class Querysql {
constructor() {
.....
});
}
async get_USUARIOS (req, res) {
.....
} etc (sigiendo este ejemplo, completa para cerrar la CLASE y hacer agrega la linea de llamado a cada peticion.

 

This will close in 0 seconds

Instrucciones:
Suponemos que tienes un OBJETO CLASE "A", en el cual al ejecutarse en automático integra los valores INIT de su respectiva funcion asi:
class A (padre) {
private $this;
public function __construct() {
$this->init();
}public function init() {
$this->clave = json_decode($this->catalogo->sku["SKU-A", TRUE];
$this->nombre = json_decode($this->catalogo->nombre["NOMBRE", TRUE];
$this->precio = json_decode($this->catalogo->precio["PRECIO", TRUE];
$this->stock = json_decode($this->catalogo->stock["STOCK", TRUE];
}
} //end parent class AEn el espacio disponible, crea EL OBJETO HIJO (puede ser llamado CLASS B) del MISMO PADRE de tal forma que puedas LLAMAR Y REUTILIZAR los valores existentes y actuales en una FUTURA FUNCION llamala "Funcion verValores(variables)" o algo similar, de la base de datos que son:
SKU, NOMBRE, PRECIO Y STOCK

para Finalizar envia tu respuesta con el formulario aqui presente

Al enviar tu respuesta, evaluaremos y te daremos tu calificacion por tu mail.

 

This will close in 0 seconds

PROGRAMACION POR OBJETOS - TESTER MAGENTO2 Nivel Basico PLANTILLADOR:

Suponemos el siguiente escenario:

1.- Tienes un CUSTOM-MODULO (UN TEMA MAGENTO2) con el siguiente LAYOUT(view/frontend/layout/) y el siguiente XML

CMS_INDEX_INDEX.XML

Y el siguiente codigo en este layout:

<referenceContainer name="page.top">
<block class="Custom_ModuleBlockEfect" template="efect.phtml" />
</referenceContainer>

EXPLICA SOBRE LAS ACCIONES DE "EFECT.PHTML" : DONDE SERÁN MOSTRADAS (EVENTO-POSICION) , CADA CUANDO SE EJECUTARÁ Y DONDE PUEDES AGREGAR-MODIFICAR DICHO EFECTO ?

 

This will close in 0 seconds

PROGRAMACION POR OBJETOS - TESTER MAGENTO2 Nivel MEDIO PLANTILLADOR

haz clic en el liguiente LINK :  http://magento2.saetiendaweb.com/

1.- ahi podras notar varios EFECTOS CUSTOMIZADOS de LAYOUT(view/frontend/layout/) agregados de forma PLUGIN-CUSTOM-MODULO:

TODOS LOS EFECTOS SON ACCIONES INSERTADAS CON EFECTOS PROPIO COMO INDEX_XML, CATALOG_XML, CHECKOUT_XML

en t respuesta: qué CONFIG LAYOUT usarias en el archivo CATALOG_XML...  para crear los efectos de BOTON-PAGO en la zona CATALOGO de la tienda, seria algo asi:

<referenceContainer name="mmmmm">
<block class="Custom_ModuleBlock...." template="catalog.phtml" />
</referenceContainer>

describe cada accion por linea

This will close in 0 seconds

PROGRAMACION POR OBJETOS - TESTER PROGRAMADOR SHELL:

En una LINEA usando SED, debes aplicar las siguientes busquedas :

1.-  DETECTAR SOLO ARCHIVOS desde un punto (no necesario raiz)

2.- FILTRAR QUE SEAN SOLO DE UNA CATEGORIA (por eje. solo archivos xml)

3.- FILTRAR QUE el resultado CONTENGA dentro de cada archivo solo los de una  VERSION ESPECIAL : por eje: <xml VER:11.0.3>

4.- EL RESULTADO de los archivos que coindicen en el filtro GUARDAR como reporte  EN FORMATO "PIPE" o separaciones por "coma"

5.- ACTUALIZAR CADA ARCHIVO (COINCIDENCIA) cambiando DE "VER:11.0.3" A "VER:12.0.0" m todo en LA MISMA LINEA SHELL o en un proceso bucle.

 

This will close in 0 seconds

PROGRAMACION POR OBJETOS - TESTER PROGRAMADOR SHELL (avanzado)

En una LINEA usando SED+AWK, debes aplicar las siguientes acciones:

1.-  DETECTAR SOLO ARCHIVOS desde un punto (no necesario raiz)

2.- FILTRAR QUE SEAN SOLO DE UNA CATEGORIA (por eje. solo archivos CSV)

3.- FILTRAR que COINCIDA UNA MARCA AL INICIO DE CADA LINEA (por eje: CLASE N)

4.- EL RESULTADO vas a CREAR TANTOS ARCHIVOS como CLASES AGRUPADAS CONTENTA, EN FORMATO "PIPE" o separaciones por "coma"

5.- Agregar UN HEADER COMO "COMENARIO DE AUTOR..VERSION..ETC)" m todo en LA MISMA LINEA SHELL o en un proceso bucle.

 

This will close in 0 seconds

This will close in 0 seconds

Chat aqui
Por aqui te respondemos