Parece que eles não têm documentação, exceto algumas chamadas de API em seus fóruns oficiais. Tenho experiência com framework Zend e framework CodeIgniter. Algum mestre em OpenCart pode me recomendar a melhor maneira de aprender e dominar no mais curto espaço de tempo? Tenho que fazer um grande projeto com ele logo.
98
Respostas:
Guia de início rápido do desenvolvedor OpenCart 1.5.X para iniciantes
Este guia foi escrito para desenvolvedores já familiarizados com PHP, OOP e a arquitetura MVC
A seguir, você verá exemplos para o lado do catálogo do carrinho. O lado do administrador é idêntico em função, com exceção das visualizações que são indicadas na seção relevante
Noções básicas sobre bibliotecas
Todas as funcionalidades da biblioteca podem ser acessadas por meio de Controller, Model e Views usando
$this->library_name
. Todos eles podem ser encontrados na/system/library/
pasta. Por exemplo, para acessar os produtos do carrinho de compras atual, você precisará usar aCart
classe, que está em/system/library/cart.php
e pode ser acessada usando$this->cart->getProducts()
Itens comumente usados
customer.php
- Funções relacionadas ao clienteuser.php
- Funções relacionadas ao usuário administradorcart.php
- Funções relacionadas ao carrinhoconfig.php
- Todas as configurações são carregadas a partir desteurl.php
- funções de geração de URLCompreender o parâmetro de rota
A estrutura do OpenCart depende do
route=aaa/bbb/ccc
parâmetro da string de consulta para saber o que carregar e é o recurso de base para encontrar os arquivos que você precisa editar para cada página. Na verdade, a maioria das rotas usa apenas o,aaa/bbb
que deve ser visto como duas partes, no entanto, algumas contêm três partes.aaa/bbb/ccc
A primeira parteaaa
geralmente está relacionada à pasta dentro de uma pasta genérica, como as pastas do controlador ou do modelo. A segunda parte geralmente está relacionada ao nome do arquivo, sem a extensão.php
ou relevante.tpl
. A terceira parte é explicada na seção "Compreendendo os controladores" abaixoCompreender idiomas
Os idiomas são armazenados em uma
/catalog/language/
pasta nayour-language
subpasta. Dentro dele, os valores de texto gerais usados em várias páginas são armazenados noyour-language.php
arquivo dentro da pasta, portanto, para o idioma inglês no catálogo, você encontrará os valores emcatalog/language/english/english.php
. Para um texto de página específico, você precisará doroute
para a página (geralmente é o caso, mas nem sempre, pois você pode especificar qualquer arquivo de idioma que desejar). Por exemplo, a página de pesquisa tem a rotaproduct/search
e, portanto, o texto específico do idioma para essa página pode ser encontrado emcatalog/language/english/product/search.php
(Observe que o nome e a subpasta do arquivo correspondem à rota seguida por.php
.Para carregar o idioma em um controlador, você usa
Então você pode usar a função de biblioteca de linguagem
get
para recuperar textos de linguagem específicos, comoAs variáveis de idioma são atribuídas no arquivo de idioma usando uma variável especial
$_
que é uma matriz de chaves e valores de texto. No seu,/catalog/language/english/product/search.php
você deve encontrar algo semelhante aOs valores no arquivo de idioma global
english/english.php
são carregados automaticamente e disponíveis para uso sem o$this->language->load
métodoCompreendendo os controladores
Os controladores são carregados com base no
route
e são bastante simples de entender. Os controladores estão localizados na/catalog/controller/
pasta. Continuando com o último exemplo, o controlador para a página de pesquisa está/product/search.php
dentro desta pasta. Observe novamente que a rota seguida por.php
é usada.Abrindo o arquivo do controlador, você verá um nome de
Controller
classe Pascal Case estendendo a classe, chamadaControllerProductSearch
. Novamente, isso é específico da rota,Controller
seguido pelo nome da subpasta e pelo nome do arquivo sem a extensão em maiúsculas. A capitalização não é realmente necessária, mas é recomendada para facilitar a leitura. É importante notar que os nomes das classes não recebem nenhum valor da subpasta e do nome do arquivo, exceto letras e números. Os sublinhados são removidos.Dentro da classe estão os métodos. Os métodos na classe declarada
public
são acessíveis para serem executados através da rota -private
não são. Por padrão, com uma rota padrão de duas partes (aaa/bbb
acima), umindex()
método padrão é chamado. Se a terceira parte de uma rota (ccc
acima) for usada, este método será executado. Por exemplo,account/return/insert
irá carregar o/catalog/controller/account/return.php
arquivo e a classe e tentar chamar oinsert
métodoModelos de compreensão
Os modelos no OpenCart são encontrados na
/catalog/model/
pasta e são agrupados com base na função, não na rota e, portanto, você precisará carregá-los em seu controlador viaIsso carregará o arquivo na subpasta
xxx
chamadayyy.php
. Ele fica então disponível para uso por meio do objetoe como acontece com os controladores, você só pode chamar seus
public
métodos. Por exemplo, para redimensionar uma imagem, você usaria otool/image
modelo e chamaria seuresize
método da seguinte maneiraCompreendendo a atribuição de variáveis em visualizações do controlador
Para passar valores do controlador para a visualização, você simplesmente precisa atribuir seus dados à
$this->data
variável, que é essencialmente uma matriz de pares chave => valor. Como um exemploAcessar isso em uma visão é um pouco fácil de entender se você estiver familiarizado com o método extract () que converte cada chave em uma variável. Portanto, a
example_var
chave se torna$example_var
e pode ser acessada como tal na visualização.Compreender temas
Os temas estão disponíveis apenas para o catálogo e são basicamente uma pasta de modelos, folhas de estilo e imagens de temas. As pastas do tema são colocadas na
/catalog/view/theme/
pasta seguida pelo nome do tema. O nome da pasta não é importante com exceção dadefault
pastaO lado do administrador usa
/admin/view/template/
(pulando o/theme/theme-name/
do caminho, pois não permite temas diferentes)Os arquivos de modelo residem em uma
template
pasta dentro da pasta do tema. Se algum modelo não estiver disponível para o tema selecionado no momento, o modelo da pasta padrão será usado como fallback. Isso significa que os temas podem ser criados com muito poucos arquivos e ainda funcionam totalmente. Também reduz a duplicação de código e problemas à medida que as atualizações são feitasCompreendendo as visualizações (modelos)
Assim como ocorre com a linguagem e os modelos, os arquivos de visualização geralmente estão relacionados à rota, embora não necessariamente. Os modelos no lado do catálogo geralmente são encontrados em, a
/catalog/view/theme/your-theme/template/
menos que não exista; nesse caso, os modelos do tema padrão serão usados. Para nosso exemplo de página de pesquisa acima, o arquivo éproduct/search.tpl
. Para rotas com três partes, geralmente é in,aaa/bbb_ccc.tpl
embora não haja nenhuma regra definida. No administrador, a maioria das páginas segue isso, com a exceção de que as páginas que listam itens, como a página de lista de produtos, estão emcatalog/product_list.tpl
e o formulário de edição de produtos está emcatalog/product_form.tpl
. Novamente, eles não são definidos, mas um padrão para o carrinho padrão.O arquivo de modelo é na verdade apenas outro arquivo php, mas com uma extensão .tpl e é realmente executado no arquivo do controlador, portanto, todas as coisas que você pode codificar em um controlador podem ser executadas em um arquivo de modelo (embora não seja recomendado a menos que seja absolutamente necessário)
Compreendendo o objeto de banco de dados
As consultas são executadas usando
DB_PREFIX
como o nome sugere, é uma constante contendo o prefixo do banco de dados, se houver$result
retornará um objeto paraSELECT
consultas, contendo algumas propriedades$result->row
contém os dados da primeira linha se um ou mais forem retornados como uma matriz associativa$result->rows
contém uma matriz de resultados de linha, ideal para repetir usando foreach$result->num_rows
contém o número de resultados retornadosExistem também alguns métodos extras que o
$this->db
objeto possui$this->db->escape()
usa mysql_real_escape_string () no valor passado$this->db->countAffected
retorna o número de linhas afetadas por umaUPDATE
consulta e assim por diante$this->db->getLastId()
retorna o último id de incremento automático usando mysql_insert_id ()Compreendendo as variáveis reservadas
OpenCart tem predefinidos variáveis para usar no lugar do padrão
$_GET
,$_POST
,$_SESSION
,$_COOKIE
,$_FILES
,$_REQUEST
E$_SERVER
$_SESSION
é editado usando$this->session->data
onde os dados são uma matriz associativa que imita o$_SESSION
Todos os outros podem ser acessados usando
$this->request
e foram "limpos" para cumprir as aspas mágicas ativadas / desativadas,$_GET
torna-se$this->request->get
$_POST
torna-se$this->request->post
$_COOKIE
torna-se$this->request->cookie
$_FILES
torna-se$this->request->files
$_REQUEST
torna-se$this->request->request
$_SERVER
torna-se$this->request->server
Resumo
Embora o texto acima não seja um guia à prova de balas para desenvolvedores, espero que sirva como um bom ponto de partida para quem está começando
fonte
Métodos de biblioteca global: funções básicas da biblioteca opencart junto com suas funcionalidades. A maioria delas pode ser chamada de qualquer lugar no catálogo ou nas pastas de administração (controladores, modelos, visualizações)
fonte
Existe um site OpenCart Wiki com documentação para desenvolvedores iniciantes. Siga os urls fornecidos abaixo para mais detalhes:
http://wiki.opencarthelp.com/doku.php?id=starthttp://wiki.opencarthelp.com/doku.php?id=methods_referenceLinks de ARQUIVO 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 = methods_reference
Por exemplo, a referência do método tem detalhes para:
Ainda existem algumas páginas em construção, mas vai ser útil.
[Atualizar]
Desde janeiro de 2018, o domínio opencarhelp.com está fora do ar.
fonte
Embora este tópico já tenha sido respondido muitas vezes, gostaria de oferecer outra abordagem para dominar o OpenCart com base na minha experiência.
Aprendendo fazendo
Ao criar sua própria estrutura OpenCart do zero com um punhado de arquivos, você pode entender como tudo é montado. Estarei imitando a estrutura de arquivos do OpenCart para você.
Crie um arquivo
index.php
1. Registro
Opencart usa o padrão do Registro para listar todas as instâncias das classes carregadas. É o coração do seu aplicativo OpenCart. O objeto de registro é então repassado a cada categoria, modelo e biblioteca para acesso rápido a outros objetos.
crie um arquivo com caminho
/system/engine/registry.php
na tua
index.php
2. Saída
Agora vamos adicionar uma saída que será nosso HTML no futuro. Afinal, a ideia é enviar uma string de texto para o navegador.
Criar arquivo
system/library/response.php
e em seu
index.php
3. Controladores
Pense nos controladores como páginas. Eles vão definir o que será mostrado ao cliente: texto, html, json, download ou mesmo uma imagem. Por enquanto, queremos apenas uma página que envie texto.
Vamos criar um controlador para a
home
página.adicione um arquivo com caminho
catalog/controller/common/home.php
e edite o seu
index.php
4. Roteador
Não queremos que os controladores sejam codificados, certo. Usaremos um parâmetro
route
do endereço de url para informar ao carrinho qual controlador carregar.Crie um arquivo com caminho
system/library/request.php
Crie a classe de roteador que será responsável por inicializar o arquivo do controlador com base na rota (em outras palavras: chame o controlador dinamicamente)
carregue-o em seu
index.php
Este post já é muito longo, mas espero que dê uma compreensão básica do padrão MVC no OpenCart.
Confira também meu https://www.youtube.com/dreamvention do Youtube e meu blog https://dreamvention.com/blog . Estarei postando mais dicas e tutoriais lá para vocês!
fonte
PHP é uma linguagem bastante grande com mais de 5000 funções integradas, portanto, uma estratégia para aprender uma nova plataforma é identificar quais funções ela usa com mais frequência e passar algum tempo conhecendo-as muito bem.
Eu executei algumas consultas no código-fonte do OpenCart e as 10 funções mais comumente usadas são:
Todos os 52 listados aqui, bem como os comandos bash do Linux que você pode usar em qualquer base de código para identificar funções comumente usadas: https://www.antropy.co.uk/blog/efficient-learning-for-new-opencart-developers/
fonte
Esta lista de reprodução de vídeos do youtube também pode ser útil para se tornarem desenvolvedores Gurus OpenCart:
Tutoriais de vídeos OpenCart
Padrão MVCL, fluxo de código e solicitação e resposta em OpenCart Mostra o padrão MVCL, fluxo de código e solicitação e resposta em OpenCart. Eles descrevem o fluxo como na imagem abaixo:
Instalar, configurar e desinstalar o módulo Opencart Mostra três maneiras de fazer upload de módulos e, em seguida, instalar, configurar e desinstalar o módulo / extensão OpenCart 3.
Layouts e posição no Opencart 3 Descreve os layouts e posições do OpenCart 3. Ele mostra como mostrar layouts personalizados para páginas diferentes, dando exemplos de páginas de categorias. Mostramos o layout diferente para uma categoria diferente.
Visão geral de eventos do Opencart Você aprenderá o que são eventos no OpenCart, como funcionam e o que os torna tão úteis.
Documentação da API Opencart para desenvolvedor Este vídeo mostrará como usar e fazer a API opencart personalizada
Depois de ver esses vídeos, você pode começar a codificar :)
fonte