Parece que no tienen documentación, excepto algunas llamadas a la API en sus foros oficiales. Tengo experiencia con el framework Zend y CodeIgniter. ¿Puede algún maestro de OpenCart recomendarme la mejor manera de aprenderlo y dominarlo en el menor tiempo posible? Tengo que hacer un gran proyecto con él pronto.
98
Respuestas:
Guía de inicio rápido para desarrolladores de OpenCart 1.5.X para principiantes
Esta guía está escrita para desarrolladores que ya están familiarizados con PHP, OOP y la arquitectura MVC.
A continuación, verá ejemplos del lado del catálogo del carrito. El lado de administración es idéntico en función con la excepción de las vistas que se indican en la sección correspondiente
Entendiendo las Bibliotecas
Se puede acceder a toda la funcionalidad de la biblioteca a través de Controlador, Modelo y Vistas usando
$this->library_name
. Todos estos se pueden encontrar en la/system/library/
carpeta. Por ejemplo, para acceder a los productos del carrito de la compra actual, deberá utilizar laCart
clase, que se encuentra en/system/library/cart.php
y se puede acceder mediante$this->cart->getProducts()
Artículos de uso común
customer.php
- Funciones relacionadas con el clienteuser.php
- Funciones relacionadas con el usuario administradorcart.php
- Funciones relacionadas con el carritoconfig.php
- Todos los ajustes se cargan desde esteurl.php
- Funciones de generación de URLComprender el parámetro de ruta
El marco de OpenCart se basa en el
route=aaa/bbb/ccc
parámetro de cadena de consulta para saber qué cargar, y es la característica fundamental para encontrar los archivos que necesita editar para cada página. La mayoría de las rutas en realidad solo usan lasaaa/bbb
que deberían verse como dos partes, sin embargo algunas contienen tres partes.aaa/bbb/ccc
La primera parteaaa
generalmente está relacionada con la carpeta dentro de una carpeta genérica como el controlador o las carpetas de plantilla. La segunda parte suele estar relacionada con el nombre del archivo, sin la extensión.php
ni la correspondiente.tpl
. La tercera parte se explica en la sección "Comprensión de los controladores" a continuación.Entendiendo idiomas
Los idiomas se almacenan en la
/catalog/language/
carpeta de layour-language
subcarpeta. Dentro de esto, los valores de texto generales utilizados en varias páginas se almacenan en elyour-language.php
archivo dentro de la carpeta, por lo que para el idioma inglés en el lado del catálogo, encontrará los valores encatalog/language/english/english.php
. Para un texto de página específico, necesitará elroute
para la página (este es generalmente el caso, pero no siempre, ya que puede especificar cualquier archivo de idioma que desee). Por ejemplo, la página de búsqueda tiene la rutaproduct/search
y, por lo tanto, el texto específico del idioma para esa página se puede encontrar encatalog/language/english/product/search.php
(Observe que el nombre del archivo y la subcarpeta coinciden con la ruta seguida por.php
.Para cargar el idioma en un controlador, usa
Luego, puede utilizar la función de biblioteca de idiomas
get
para recuperar textos de idiomas específicos, comoLas variables de idioma se asignan en el archivo de idioma mediante una variable especial
$_
que es una matriz de claves y valores de texto. En tu/catalog/language/english/product/search.php
deberías encontrar algo similar aLos valores en el archivo de idioma global
english/english.php
se cargan automáticamente y están disponibles para su uso sin el$this->language->load
métodoEntender los controladores
Los controladores se cargan en función del
route
y son bastante sencillos de entender. Los controladores se encuentran en la/catalog/controller/
carpeta. Continuando con el último ejemplo, el Controlador de la página de búsqueda se encuentra/product/search.php
dentro de esta carpeta. Observe de nuevo que.php
se utiliza la ruta seguida por .Al abrir el archivo del controlador, verá un nombre de clase Pascal Case que extiende la
Controller
clase, llamadoControllerProductSearch
. De nuevo, esto es específico de la ruta,Controller
seguido del nombre de la subcarpeta y el nombre del archivo sin la extensión en mayúscula. Las mayúsculas no son realmente necesarias, pero se recomiendan para facilitar la lectura. Vale la pena señalar que los nombres de clase no toman ningún valor de la subcarpeta y el nombre del archivo que no sean letras y números. Se eliminan los guiones bajos.Dentro de la clase están los métodos. Los métodos de la clase declarada
public
son accesibles para ejecutarse a través de la ruta;private
no lo son. De forma predeterminada, con una ruta estándar de dos partes (aaa/bbb
arriba),index()
se llama a un método predeterminado . Siccc
se usa la tercera parte de una ruta ( arriba), este método se ejecutará en su lugar. Por ejemplo,account/return/insert
cargará el/catalog/controller/account/return.php
archivo y la clase e intentará llamar alinsert
métodoComprensión de modelos
Los modelos en OpenCart se encuentran en la
/catalog/model/
carpeta y se agrupan según la función, no la ruta, y por lo tanto deberá cargarlos en su controlador a través deEsto cargará el archivo en la subcarpeta
xxx
llamadayyy.php
. Entonces está disponible para su uso a través del objetoy al igual que con los controladores, solo puede llamar a sus
public
métodos. Por ejemplo, para cambiar el tamaño de una imagen, usaría eltool/image
modelo y llamaría a suresize
método de la siguiente maneraComprender la asignación de variables en vistas desde el controlador
Para pasar valores a la vista desde el controlador, simplemente necesita asignar sus datos a la
$this->data
variable, que es esencialmente una matriz de pares clave => valor. Como ejemploAcceder a esto en una vista es un poco, debería ser fácil de entender si está familiarizado con el método extract () que convierte cada clave en una variable. Entonces la
example_var
clave se convierte$example_var
y se puede acceder a ella como tal en la vista.Entendiendo temas
Los temas están disponibles solo en el lado del catálogo y son básicamente una carpeta de plantillas, hojas de estilo e imágenes de temas. Las carpetas de temas se colocan en la
/catalog/view/theme/
carpeta seguida del nombre del tema. El nombre de la carpeta no es importante con excepción de ladefault
carpetaEl lado del administrador usa
/admin/view/template/
(omitiendo el/theme/theme-name/
de la ruta ya que no permite diferentes temas)Los archivos de plantilla residen en una
template
carpeta dentro de la carpeta del tema. Si alguna plantilla no está disponible para el tema seleccionado actualmente, la plantilla de la carpeta predeterminada se utiliza en su lugar como alternativa. Esto significa que los temas se pueden crear con muy pocos archivos y seguir funcionando plenamente. También reduce la duplicación de código y los problemas a medida que se realizan actualizaciones.Comprensión de las vistas (plantillas)
Al igual que con el idioma y los modelos, los archivos de vista generalmente están relacionados con la ruta, aunque no tienen que estarlo en absoluto. Las plantillas en el lado del catálogo generalmente se encuentran a
/catalog/view/theme/your-theme/template/
menos que no exista, en cuyo caso se usarán las plantillas del tema predeterminado. Para nuestro ejemplo de página de búsqueda anterior, el archivo esproduct/search.tpl
. Para rutas con tres partes, generalmente está adentro,aaa/bbb_ccc.tpl
aunque no hay una regla establecida. En el administrador, la mayoría de las páginas siguen esto, con la excepción de que las páginas que enumeran elementos, como la página de listado de productos, están encatalog/product_list.tpl
y el formulario de edición de productos está encatalog/product_form.tpl
. Nuevamente, estos no están establecidos, sino un estándar para el carrito predeterminado.El archivo de plantilla es de hecho solo otro archivo php, pero con una extensión .tpl y en realidad se ejecuta en el archivo del controlador, por lo tanto, todas las cosas que puede codificar en un controlador se pueden ejecutar en un archivo de plantilla (aunque no se recomienda a menos que sea absolutamente necesario necesario)
Comprender el objeto de la base de datos
Las consultas se ejecutan usando
DB_PREFIX
como sugiere el nombre es una constante que contiene el prefijo de la base de datos si existe$result
devolverá un objeto paraSELECT
consultas, que contiene algunas propiedades$result->row
contiene los datos de la primera fila si uno o más se devuelven como una matriz asociativa$result->rows
contiene una matriz de resultados de fila, ideal para recorrer con foreach$result->num_rows
contiene el número de resultados devueltosTambién hay algunos métodos adicionales que
$this->db
tiene el objeto$this->db->escape()
usa mysql_real_escape_string () en el valor pasado$this->db->countAffected
devuelve el número de filas afectadas por unaUPDATE
consulta y así sucesivamente$this->db->getLastId()
devuelve la última identificación de incremento automático usando mysql_insert_id ()Comprender las variables reservadas
OpenCart ha predefinido de variables para usar en lugar de la norma
$_GET
,$_POST
,$_SESSION
,$_COOKIE
,$_FILES
,$_REQUEST
Y$_SERVER
$_SESSION
se edita utilizando$this->session->data
donde los datos son una matriz asociativa que imita el$_SESSION
Se puede acceder a todos los demás usando
$this->request
y se han "limpiado" para cumplir con las comillas mágicas habilitadas / deshabilitadas, por lo que$_GET
se convierte en$this->request->get
$_POST
se convierte en$this->request->post
$_COOKIE
se convierte en$this->request->cookie
$_FILES
se convierte en$this->request->files
$_REQUEST
se convierte en$this->request->request
$_SERVER
se convierte en$this->request->server
Resumen
Si bien lo anterior no es una guía a prueba de balas para los desarrolladores, es de esperar que sirva como un buen punto de partida para los que comienzan.
fuente
Métodos de biblioteca global: funciones básicas de biblioteca opencart junto con sus funcionalidades, la mayoría de estas se pueden llamar desde cualquier lugar del catálogo o carpetas de administración (controladores, modelos, vistas)
fuente
Hay un sitio web OpenCart Wiki con documentación para desarrolladores principiantes. Siga las direcciones URL que se proporcionan a continuación para obtener más detalles:
http://wiki.opencarthelp.com/doku.php?id=starthttp://wiki.opencarthelp.com/doku.php?id=methods_referenceVínculos ARCHIVO DE INTERNET
http://web.archive.org/web/20160305131349/http://wiki.opencarthelp.com/doku.php?id=start http://web.archive.org/web/20160305131349/http://wiki .opencarthelp.com / doku.php? id = referencia_métodos
Por ejemplo, la referencia del método tiene detalles para:
Aún así, hay algunas páginas en construcción, pero será útil.
[Actualizar]
A partir de enero de 2018, el dominio opencarhelp.com está inactivo.
fuente
Aunque este tema ya ha sido respondido muchas veces, me gustaría ofrecer otro enfoque para dominar OpenCart basado en mi experiencia.
Aprender haciendo
Al crear su propio marco OpenCart desde cero con un puñado de archivos, puede comprender cómo se organiza todo. Estaré imitando la estructura de archivos de OpenCart por ti.
Crea un archivo
index.php
1. Registro
Opencart usa el patrón de Registro para enumerar todas las instancias de clases cargadas. Es el corazón de su aplicación OpenCart. Luego, el objeto de registro se pasa a todas las categorías, modelos y bibliotecas para acceder rápidamente a otros objetos.
crear un archivo con ruta
/system/engine/registry.php
en tus
index.php
2. Salida
Ahora agreguemos una salida que será nuestro HTML en el futuro. Después de todo, la idea es enviar una cadena de texto al navegador.
Crea un archivo
system/library/response.php
y en tu
index.php
3. Controladores
Piense en los controladores como páginas. Definirán lo que se mostrará al cliente: texto, html, json, descarga o incluso una imagen. Por ahora, solo queremos una página que envíe texto.
Crearemos un controlador para la
home
página.agregar un archivo con ruta
catalog/controller/common/home.php
y edita tu
index.php
4. Enrutador
No queremos que los controladores estén codificados, ¿no? Usaremos un parámetro
route
de la dirección URL para decirle a nuestro carrito qué controlador cargar.Crea un archivo con ruta
system/library/request.php
Cree la clase Router que será responsable de inicializar el archivo del controlador en función de la ruta (en otras palabras: llamar dinámicamente al controlador)
cárgalo en tu
index.php
Esta publicación ya es demasiado larga, pero espero que brinde una comprensión básica del patrón MVC en OpenCart.
También echa un vistazo a mi https://www.youtube.com/dreamvention de Youtube y a mi blog https://dreamvention.com/blog. ¡Publicaré más consejos y tutoriales para ustedes!
fuente
PHP es un lenguaje bastante grande con más de 5000 funciones integradas, por lo que una estrategia para aprender una nueva plataforma es identificar qué funciones usa con más frecuencia y dedicar un tiempo a conocerlas muy bien.
Ejecuté algunas consultas en el código fuente de OpenCart y las 10 funciones más utilizadas son:
Los 52 enumerados aquí, así como los comandos bash de Linux que puede usar en cualquier base de código para identificar las funciones de uso común: https://www.antropy.co.uk/blog/efficient-learning-for-new-opencart-developers/
fuente
Esta lista de reproducción de videos de youtube también puede ser útil para convertirse en gurús de desarrolladores de OpenCart:
Tutoriales de vídeos de OpenCart
Patrón MVCL, flujo de código y solicitud y respuesta en OpenCart Muestra el patrón MVCL, flujo de código y solicitud y respuesta en OpenCart. Describen el flujo como en la siguiente imagen:
Instalar, configurar y desinstalar el módulo OpenCart Muestra tres formas de cargar módulos, luego instalar, configurar y desinstalar el módulo / extensión OpenCart 3.
Diseños y posición en OpenCart 3 Describe los diseños y posiciones de OpenCart 3. Muestra cómo mostrar diseños personalizados para diferentes páginas, dando ejemplos de páginas de categorías. Mostramos el diseño diferente para una categoría diferente.
Descripción general de eventos de OpenCart Aprenderá qué son los eventos en OpenCart, cómo funcionan y qué los hace tan útiles.
Documentación de la API de Opencart para desarrolladores Este video mostrará cómo usar y hacer una API de Opencart personalizada
Una vez que vea estos videos, puede comenzar a codificar :)
fuente