Nasıl OpenCart gurusu olunur? [kapalı]


98

Resmi forumlarında bazı API çağrıları dışında belgeleri yok gibi görünüyor. Zend çerçevesi ve CodeIgniter çerçevesi ile ilgili deneyimim var. Herhangi bir OpenCart ustası bana bunu öğrenmenin ve en kısa sürede ustalaşmanın en iyi yolunu önerebilir mi? Yakında onunla büyük bir proje yapmalıyım.



Bu gerçekten önemli bir soru, bazen SO standartlarını aşmak gerçekten yardımcı oluyor ...
KAD

1
Bu soru için çok teşekkürler, bana çok yardımcı oldu
Bipul Roy

@BipulRoy Sevindim! Şimdi popüler bir soru gibi görünüyor!
CodeCrack

Yanıtlar:


311

OpenCart 1.5.X geliştirici yeni başlayanlar için hızlı başlangıç ​​kılavuzu

Bu kılavuz, PHP, OOP ve MVC mimarisine zaten aşina olan geliştiriciler için yazılmıştır.

Aşağıda, alışveriş sepetinin katalog tarafı için örnekler göreceksiniz. Yönetici tarafı, ilgili bölümde belirtilen görünümler haricinde işlev bakımından aynıdır.


Kitaplıkları Anlamak

Tüm kitaplık işlevlerine Denetleyici, Model ve Görünümler aracılığıyla erişilebilir $this->library_name. Bunların tümü /system/library/klasörde bulunabilir. Örneğin, mevcut alışveriş sepetinin ürünlerine erişmek için Cart, içinde bulunan /system/library/cart.phpve kullanılarak erişilebilen sınıfı kullanmanız gerekir.$this->cart->getProducts()

Yaygın olarak kullanılan öğeler

  • customer.php - Müşteri ile ilgili işlevler
  • user.php - Yönetici kullanıcıyla ilgili işlevler
  • cart.php - Alışveriş sepetiyle ilgili işlevler
  • config.php - Tüm ayarlar buradan yüklenir
  • url.php - URL oluşturma işlevleri

Rota parametresini anlama

OpenCart'ın çerçevesi, route=aaa/bbb/cccneyin yükleneceğini bilmek için sorgu dizesi parametresine dayanır ve her sayfa için düzenlemeniz gereken dosyaları bulmanın temelini oluşturur. Çoğu yol aslında yalnızca aaa/bbbiki parça olarak görülmesi gerekenleri kullanır , ancak bazıları üç bölüm içerir aaa/bbb/ccc. İlk bölüm aaagenellikle denetleyici veya şablon klasörler gibi genel bir klasör içindeki klasörle ilgilidir. İkinci bölüm genellikle ilgili .phpveya .tpluzantı olmadan dosya adıyla ilgilidir . Üçüncü bölüm, aşağıdaki "Denetleyicileri anlama" bölümünde açıklanmıştır.


Dilleri anlamak

Diller /catalog/language/, your-languagealt klasördeki klasörde saklanır . Bunun içinde, çeşitli sayfalarda kullanılan genel metin değerleri your-language.phpklasör içindeki dosyada saklanır , bu nedenle katalog tarafındaki İngilizce dili için değerleri içinde bulabilirsiniz catalog/language/english/english.php. Belirli bir sayfa metni routeiçin, sayfa için ihtiyacınız olacaktır (Bu genellikle böyledir, ancak istediğiniz herhangi bir dil dosyasını belirleyebileceğiniz için her zaman geçerli değildir ). Örneğin, arama sayfasının rotası vardır product/searchve bu nedenle bu sayfa için dile özgü metnin içinde bulunabilir catalog/language/english/product/search.php(Dosyanın adı ve alt klasörünün, ardından gelen rotayla eşleştiğine dikkat edin .php.

Dili bir denetleyiciye yüklemek için şunu kullanırsınız:

$this->language->load('product/search');

Ardından, dil kitaplığı işlevini get, örneğin, belirli dil metinlerini almak için kullanabilirsiniz.

$some_variable = $this->language->get('heading_title');

Dil değişkenleri $_, bir anahtarlar ve metin değerleri dizisi olan özel bir değişken kullanılarak dil dosyasında atanır . Senin içinde /catalog/language/english/product/search.phpbenzer bir şey bulmalısın

$_['heading_title']     = 'Search';

Global dil dosyasındaki english/english.phpdeğerler otomatik olarak yüklenir ve $this->language->loadyöntem olmadan kullanılabilir.


Denetleyicileri anlama

Kontrolörler temel alınarak yüklenir routeve anlaşılması oldukça basittir. Denetleyiciler /catalog/controller/klasörde bulunur. Son örnekten devam edersek, Arama sayfası için Denetleyici /product/search.phpbu klasörün içindedir. İzlenen rotanın .phpkullanıldığına bir kez daha dikkat edin .

Denetleyici dosyasını açtığınızda, Controllersınıfı genişleten bir Pascal Case sınıf adı görürsünüz ControllerProductSearch. Bu yine rotaya özeldir.Controller ardından alt klasör adı ve uzantı büyük harfle yazılmadan dosya adı gelir. Büyük harf kullanımı aslında gerekli değildir, ancak kolay okunabilirlik için önerilir. Sınıf adlarının alt klasörden ve dosya adından harfler ve sayılar dışında herhangi bir değer almadığını belirtmek gerekir. Alt çizgiler kaldırılır.

Sınıfın içinde yöntemler vardır. Bildirilen sınıftaki yöntemler public, rota aracılığıyla çalıştırılmak üzere erişilebilirdir - privatedeğildir. Varsayılan olarak, standart iki parçalı yolla ( aaa/bbbyukarıda), varsayılan bir index()yöntem çağrılır. Bir rotanın üçüncü kısmı ( cccyukarıda) kullanılırsa, bunun yerine bu yöntem çalıştırılacaktır. Örneğin account/return/insert, /catalog/controller/account/return.phpdosyayı ve sınıfı yükleyecek ve insertyöntemi çağırmayı deneyecek


Modelleri Anlamak

OpenCart'taki modeller /catalog/model/klasörde bulunur ve rotaya değil işleve göre gruplandırılır ve bu nedenle bunları kontrol cihazınıza

$this->load->model('xxx/yyy');

Bu, dosyayı xxxadı verilen alt klasöre yükleyecektir yyy.php. Daha sonra nesne üzerinden kullanılabilir

$this->model_xxx_yyy

ve denetleyicilerde olduğu gibi, yalnızca publicyöntemlerini çağırabilirsiniz . Örneğin, bir görüntüyü yeniden boyutlandırmak için tool/imagemodeli kullanır ve resizeaşağıdaki gibi yöntemini çağırırsınız.

$this->load->model('tool/image');
$this->model_tool_image->resize('image.png', 300, 200);

Denetleyiciden görünümlerdeki değişken atamasını anlama

Denetleyiciden görünüme değerler iletmek için, verilerinizi $this->datadeğişkene atamanız yeterlidir , bu temelde bir anahtar => değer çiftleri dizisidir. Örnek olarak

$this->data['example_var'] = 123;

Her anahtarı bir değişkene dönüştüren extract () yöntemine aşinaysanız, buna bir görünümde erişmek biraz anlaşılır olmalıdır . Böylece example_varanahtar $example_vargörünümde olduğu gibi erişilebilir hale gelir ve erişilebilir.


Temaları anlamak

Temalar yalnızca katalog tarafında mevcuttur ve temelde şablonlar, stil sayfaları ve tema görüntülerinden oluşan bir klasördür. Tema klasörleri /catalog/view/theme/klasöre yerleştirilir ve ardından tema adı gelir. Klasör ismi hariç önem olmadığı defaultklasöre

Yönetici tarafı kullanır /admin/view/template/( /theme/theme-name/farklı temalara izin vermediği için yoldan atlayarak )

Şablon dosyaları template, tema klasöründeki bir klasörde bulunur. Şu anda seçili tema için herhangi bir şablon yoksa, bunun yerine yedek olarak varsayılan klasörün şablonu kullanılır. Bu, temaların çok az dosyayla oluşturulabileceği ve yine de tam olarak çalışabileceği anlamına gelir. Ayrıca, yükseltmeler yapıldıkça kod yinelemesini ve sorunları azaltır


Görünümleri (şablonlar) anlama

Dil ve modellerde olduğu gibi, görünüm dosyaları genellikle rota ile ilgilidir, ancak olması gerekmez. Katalog tarafındaki şablonlar genellikle /catalog/view/theme/your-theme/template/mevcut olmadığı sürece içinde bulunur, bu durumda varsayılan temanın şablonları kullanılacaktır. Yukarıdaki arama sayfası örneğimiz için dosya product/search.tpl. Üç bölümden oluşan rotalar için, aaa/bbb_ccc.tplkatı kural olmamasına rağmen genellikle geçerlidir . Yöneticide, ürün listeleme sayfası gibi öğeleri listeleyen sayfaların içinde olması catalog/product_list.tplve ürün düzenleme formunun içinde olması dışında çoğu sayfa bunu takip eder catalog/product_form.tpl. Yine, bunlar ayarlanmadı, ancak varsayılan alışveriş sepeti için bir standart.

Şablon dosyası aslında sadece başka bir php dosyasıdır, ancak bir .tpl uzantısına sahiptir ve aslında denetleyici dosyasında çalıştırılır, bu nedenle bir denetleyicide kodlayabileceğiniz her şey bir şablon dosyasında çalıştırılabilir (ancak kesinlikle önerilmez) gerekli)


Veritabanı nesnesini anlama

Sorgular kullanılarak çalıştırılır

$result = $this->db->query("SELECT * FROM `" . DB_PREFIX . "table`");

DB_PREFIX adından da anlaşılacağı gibi, varsa veritabanı önekini içeren bir sabittir

$resultSELECTbirkaç özellik içeren sorgular için bir nesne döndürür

$result->row bir veya daha fazla ilişkilendirilebilir dizi olarak döndürülürse ilk satırın verilerini içerir

$result->rows foreach kullanarak döngü yapmak için ideal olan bir dizi satır sonucu içerir

$result->num_rows döndürülen sonuçların sayısını içerir

Ayrıca $this->dbnesnenin sahip olduğu birkaç ekstra yöntem vardır.

$this->db->escape()iletilen değerde mysql_real_escape_string () kullanır

$this->db->countAffectedbir UPDATEsorgudan etkilenen satırların sayısını verir vb.

$this->db->getLastId()mysql_insert_id () kullanarak son otomatik artış kimliğini döndürür


Ayrılmış değişkenleri anlama

OpenCart standardın yerine kullanılmasına değişkenleri önceden tanımlanmış $_GET, $_POST, $_SESSION, $_COOKIE, $_FILES, $_REQUESTVE$_SERVER

$_SESSION$this->session->dataverinin bir ilişkisel dizi olduğu yerde düzenlenir .$_SESSION

Diğerlerinin hepsine kullanılarak erişilebilir $this->requestve sihirli tırnak işaretlerinin etkinleştirilmesi / devre dışı bırakılması için "temizlendi".

$_GET olur $this->request->get

$_POST olur $this->request->post

$_COOKIE olur $this->request->cookie

$_FILES olur $this->request->files

$_REQUEST olur $this->request->request

$_SERVER olur $this->request->server


Özet

Yukarıdakiler geliştiriciler için kurşun geçirmez bir rehber olmasa da, umarım yeni başlayanlar için iyi bir başlangıç ​​noktası olur.


3
Teşekkürler! Bunu nereden aldın?
CodeCrack

64
Ben yazdım. Yazmak ve soruya uymak gerektiğini düşündüm
Jay Gilford

2
Çok hoş. Çoğu rehberden çok daha bilgilendirici. Herhangi bir şans eseri ilerlemiş misiniz?
CodeCrack

3
Buna Topluluk Wiki statüsü verilmelidir
Stann0rz

1
@UltimateKing - Bu kılavuz, kendi modlarınızı oluşturmaya başlamanız için size fazlasıyla bilgi sağlıyor. İnternette modül geliştirmeye özel öğreticiler de var
Jay Gilford

36

Global Kitaplık Yöntemleri: Temel açık kitap kitaplığı işlevleri, işlevleriyle birlikte, Bunların çoğu katalog veya yönetici klasörlerindeki herhangi bir yerden (denetleyiciler, modeller, görünümler) çağrılabilir

CACHE
$this->cache->delete($key) - Deletes cache [product, category, country, zone, language, currency,
manufacturer]

CART
$this->cart->getProducts() Gets all products currently in the cart including options, discounted prices, etc.
$this->cart->add( $product_id, $qty = 1, $options = array()) - Allows you to add a product to the cart
$this->cart->remove( $key ) - Allows you to remove a product from the cart
$this->cart->clear() - Allows you to remove all products from the cart
$this->cart->getWeight() - Sum of the weight of all products in the cart that have require shipping set to Yes
$this->cart->getSubTotal() - returns the subtotal of all products added together before tax
$this->cart->getTotal() - returns the total of all products added together after tax
$this->cart->countProducts() - returns the count of all product in the cart
$this->cart->hasProducts() - returns true if there is at least one item in the cart
$this->cart->hasStock() - returns false if there is at least one item in the cart that is out of stock
$this->cart->hasShipping() - returns true if there is at least one item in the cart that requires shipping
$this->cart->hasDownload() - returns true if there is at least one item in the cart that has a download
associated

CONFIG
$this->config->get($key) - returns setting value by keyname based on application (catalog or admin)
$this->config->set($key, $value) - set the value to override the setting value. DOES NOT SAVE TO DATABASE

CURRENCY
$this->currency->set($currency) - set or override the currency code to be used in the session
$this->currency->format($number, $currency = '', $value = '', $format = TRUE) - format the currency
$this->currency->convert($value, $from, $to) - convert a value from one currency to another. Currencies must
exist
$this->currency->getId() - get the database entry id for the current currency (1, 2, 3, 4)
$this->currency->getCode() - get the 3-letter iso code for the current currency (USD, EUR, GBP, AUD, etc)
$this->currency->getValue($currency) - get the current exchange rate from the database for the specified
currency.
$this->currency->has(currency) - Check if a currency exists in the opencart currency list

CUSTOMER
$this->customer->login($email, $password) - Log a customer in
$this->customer->logout() - Log a customer out
$this->customer->isLogged() - check if customer is logged in
$this->customer->getId() - get the database entry id for the current customer (integer)
$this->customer->getFirstName() - get customer first name
$this->customer->getLastName() - get customer last name
$this->customer->getEmail() - get customer email
$this->customer->getTelephone() - get customer telephone number
$this->customer->getFax() - get customer fax number
$this->customer->getNewsletter() - get customer newsletter status
$this->customer->getCustomerGroupId() - get customer group id
$this->customer->getAddressId() - get customer default address id (maps to the address database field)

DATABASE
$this->db->query($sql) - Execute the specified sql statement. Returns row data and rowcount.
$this->db->escape($value) - Escape/clean data before entering it into database
$this->db->countAffected($sql) - Returns count of affected rows from most recent query execution
$this->db->getLastId($sql) - Returns last auto-increment id from more recent query execution 4

DOCUMENT (*Called from controller only before renderer)
$this->document->setTitle($title) - Set page title
$this->document->getTitle()- Get page title
$this->document->setDescription($description) - Set meta description
$this->document->getDescription()- Get meta description
$this->document->setKeywords()- Set meta keywords
$this->document->getKeywords()- Get meta keywords
$this->document->setBase($base) - Set page base
$this->document->getBase() - Get page base
$this->document->setCharset($charset) - Set page charset
$this->document->getCharset() - Get page charset
$this->document->setLanguage($language) - Set page language
$this->document->getLanguage()- Get page language
$this->document->setDirection($direction) - Set page direction (rtl/ltr)
$this->document->getDirection()- Get page direction (rtl/ltr)
$this->document->addLink( $href, $rel )  Add dynamic <link> tag
$this->document->getLinks()- Get page link tags
$this->document->addStyle( $href, $rel = 'stylesheet', $media = 'screen' )  Add dynamic style
$this->document->getStyles()- Get page styles
$this->document->addScript( $script ) - Add dynamic script
$this->document->getScripts()- Get page scripts
$this->document->addBreadcrumb($text, $href, $separator = ' &gt; ')  Add breadcrumb
$this->document->getBreadcrumbs()- Get Breadcrumbs

ENCRYPT
$this->encryption->encrypt($value) - Encrypt data based on key in admin settings
$this->encryption->decrypt($value) - Decrypt data based on key in admin settings

IMAGE
$this->image->resize($width = 0, $height = 0)

JSON
$this->json->encode( $data )
$this->json->decode( $data , $assoc = FALSE)

LANGUAGE
$this->language->load($filename);

LENGTH
$this->length->convert($value, $from, $to) - convert a length to another. units must exist
$this->length->format($value, $unit, $decimal_point = '.', $thousand_point = ',') - format the length to use
unit

LOG
$this->log->write($message) - Writes to the system error log

REQUEST
$this->request->clean($data) - Cleans the data coming in to prevent XSS
$this->request->get['x'] - Same as $_GET['x']
$this->request->post['x'] - Same as $_POST['x']

RESPONSE
$this->response->addHeader($header) - additional php header tags can be defined here
$this->response->redirect($url) - redirects to the url specified

TAX
$this->tax->setZone($country_id, $zone_id) - Set the country and zone id for taxing (integer)
$this->tax->calculate($value, $tax_class_id, $calculate = TRUE) - Calculate all taxes to be added to the total
$this->tax->getRate($tax_class_id) - Get the rates of a tax class id
$this->tax->getDescription($tax_class_id) - Get the description of a tax class id
$this->tax->has($tax_class_id) - Check if a tax class id exists in opencart

SESSION
$this->session->data['x'] - Same as $_SESSION['x']  

9

Yeni başlayan geliştiriciler için dokümantasyon içeren bir OpenCart Wiki web sitesi var. Daha fazla ayrıntı için aşağıda verilen url'leri izleyin:

http://wiki.opencarthelp.com/doku.php?id=start
http://wiki.opencarthelp.com/doku.php?id=methods_reference

INTERNET ARŞİV bağlantıları

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 = method_reference

Örneğin, Yöntem referansında şunlar için ayrıntılar vardır:

  1. müşteri girişi
  2. DB Erişimi
  3. Alışveriş Sepeti Taşıma
  4. Yapılandırma
  5. Önbellek
  6. Para Birimi İşleme

Yine de yapım aşamasında olan bazı sayfalar var ama yardımcı olacak.

[Güncelleme]

Ocak-2018 itibariyle, opencarhelp.com alanı kapalıdır.


Birkaç ay sonra hala eksik bilgi var gibi görünüyor. Bu proje terk mi edildi?
Pacerier

@Pacerier, bundan emin değilim.
Dharmang

Bu harika bir sayfa açık sepet wiki referansı olsa bile, bağlantıyı burada görebilirsiniz wiki.opencarthelp.com/doku.php?id=opencart_framework
Nassim

4

Bu konu zaten birçok kez yanıtlanmış olsa da, deneyimlerime dayanarak OpenCart'ta ustalaşmak için başka bir yaklaşım önermek istiyorum.

Yaparak öğrenmek

Bir avuç dosya ile sıfırdan kendi OpenCart çerçevenizi oluşturarak, her şeyin nasıl bir araya getirildiğini anlayabilirsiniz. OpenCart'ın dosya yapısını sizin için taklit edeceğim.

Bir dosya oluştur index.php

<?php
// My simpleCart

1. Kayıt

Opencart, yüklenen sınıfların tüm örneklerini listelemek için Kayıt defteri modelini kullanır. OpenCart uygulamanızın kalbidir. Kayıt defteri nesnesi daha sonra diğer nesnelere hızlı erişim için her kategoriye, modele ve kitaplığa aktarılır.

yolu olan bir dosya oluştur /system/engine/registry.php

<?php
// Registry class. 
class Registry
{
    private $data = array();

    public function set($key, $value){
        $this->data[$key] = $value;
    }

    public function get($key){
        return (isset($this->data[$key])) ? $this->data[$key] : false;
    }
}

senin içinde index.php

<?php
// My simpleCart

//load dependency files
require_once('system/engine/registry.php');

//initialize registry
$registry = new Registry;

2. Çıktı

Şimdi gelecekte HTML'miz olacak bir çıktı ekleyelim. Sonuçta, tüm fikir tarayıcıya bir metin dizisi göndermektir.

Dosya oluştur system/library/response.php

<?php
class Response {
    private $output;

    public function getOutput() {
        return $this->output;
    }

    public function setOutput($output) {
        $this->output = $output;
    }

    public function output() {
        if ($this->output) {
            echo $this->output;
        }
    }
}

ve senin içinde index.php

<?php
// My simpleCart

//load dependency files
require_once('system/engine/registry.php');
require_once('system/library/response.php');

//initialize registry
$registry = new Registry;

//initialize response
$response = new Response;
//add response object to the registry
$registry->set('response', $response);

//lets set an output as a test
$registry->get('response')->setOutput('Hello World');

//send the output to the client
$registry->get('response')->output();

Dikkat edin, Merhaba dünyayı yalnızca bir örnek olarak ekledim. Daha sonra kaldıracağız. Kontrol etmek için sitenizi yenileyin. Tarayıcı görüntülenmelidir Hello World.

3. Kontrolörler

Denetleyicileri sayfalar olarak düşünün. İstemciye neyin gösterileceğini tanımlayacaklar: metin, html, json, indirme ve hatta bir resim. Şimdilik, sadece metin gönderen bir sayfa istiyoruz.

homeSayfa için bir kontrolör oluşturacağız .

yolu olan bir dosya ekle catalog/controller/common/home.php

<?php

class ControllerCommonHome{

    private $registry = array();

    public function __construct($registry){
        $this->registry = $registry;
    }

    public function index(){

        $output = 'Home Page';
        //using the registry to get the response object and set the Output
        $this->registry->get('response')->setOutput($output);
    }
}

ve düzenle index.php

<?php
// My simpleCart

//load registry
require_once('system/engine/registry.php');
//load response
require_once('system/library/response.php');

//initialize registry
$registry = new Registry;

//initialize response
$response = new Response;
//add resoinse object to the registry
$registry->set('response', $response);

//load controller common/home
require_once('catalog/controller/common/home.php');
$controller = new ControllerCommonHome($registry);
$controller->index();

//send the output to the client
$registry->get('response')->output();

$refistrydenetleyicinin içinden erişebilmem için ControllerCommonHome'a nasıl geçtiğime dikkat edin .

4. Yönlendirici

Denetleyicilerin kodlanmış olmasını istemiyoruz, doğru. routeSepetimize hangi denetleyicinin yükleneceğini söylemek için url adresinden bir parametre kullanacağız .

Yol ile bir dosya oluştur system/library/request.php

<?php
class Request {
    public $get = array();

    //for now I just need the $_GET parameter
    public function __construct() {
        $this->get = $_GET;
    }
}

Rotaya göre Controller dosyasını başlatmaktan sorumlu olacak Router sınıfını oluşturun (diğer bir deyişle: dinamik olarak kontrolörü çağırın)

<?php
class Router {
    private $registry;

    public function __construct($registry) {
        $this->registry = $registry;
    }

    public function dispatch($route) {
        require_once('catalog/controller/'.$route.'.php');
        $class = "Controller".str_replace('/', '', $route);
        $controller = new $class($this->registry);
        $controller->index();
    }
}

içine yükle index.php

<?php
require_once('system/engine/registry.php');
require_once('system/engine/router.php');
require_once('system/library/response.php');
require_once('system/library/request.php');

$registry = new Registry;

$response = new Response;
$registry->set('response', $response);

$request = new Request;
$registry->set('request', $request);

//get the route from the url
if(isset($registry->get('request')->get['route'])){
    $route = $registry->get('request')->get['route'];
}else{
    $route = 'common/home';
}

//initiate the router and dispatch it base on the route
$router = new Router($registry);
$router->dispatch($route);


$registry->get('response')->output();

Her şeyi içine nasıl yüklediğime $registryve sonra onu neye $routergeçirdiğime dikkat edin.$controller .

Bu gönderi zaten çok uzun, ancak umarım OpenCart'taki MVC modelinin temel bir anlayışını verir.

Bu gönderiye devam etmemi ve diğer şeylerin modeller ve görünümler gibi nasıl çalıştığını anlatmamı istiyorsanız, bu cevabı derecelendirin, böylece öğrenebilirim.

Ayrıca Youtube'uma https://www.youtube.com/dreamvention ve bloguma https://dreamvention.com/blog da göz atın. Sizler için orada daha fazla ipucu ve öğretici yayınlayacağım!


1

PHP, 5000'den fazla yerleşik işleve sahip oldukça büyük bir dildir, bu nedenle yeni bir platformu öğrenmek için bir strateji, hangi işlevleri en sık kullandığını belirlemek ve bunları çok iyi tanımak için biraz zaman harcamaktır.

OpenCart kaynak koduyla ilgili bazı sorgular çalıştırdım ve en sık kullanılan 10 işlevi şunlardır:

array()
count()
explode()
implode()
mktime()
delete()
time()
date()
sprintf()
list()

Burada listelenen 52'nin tümü ve yaygın olarak kullanılan işlevleri tanımlamak için herhangi bir kod tabanında kullanabileceğiniz Linux bash komutları: https://www.antropy.co.uk/blog/efficient-learning-for-new-opencart-developers/


1

Bu youtube videoları oynatma listesi, OpenCart geliştirici Gurusu olmak için de yararlı olabilir:

OpenCart Videoları Öğreticileri

  1. Giriş ve İçindekiler Bu video, dizinin girişinden geçer
  2. OpenCart kurulumu localhost Bu video localhost'taki OpenCart kurulumundan geçiyor
  3. Opencart'ın dosya ve klasör yapısı OpenCart'ın dosya ve klasör yapısını açıklar
  4. OpenCart'ta Veritabanı Tablo şeması oluşturma Veritabanı tablosu şemasını gösterir ve OpenCart'ta veritabanı tablolarının nasıl oluşturulacağını gösterir
  5. OpenCart Kitaplığı Önceden Tanımlanmış Nesnelerin Yöntemleri OpenCart Kitaplığı Ön Tanımlı Nesnelerin Yöntemlerini açıklar ve bunların nerede bulunacağını gösterir.
  6. OpenCart'ta MVCL kalıbı, kod akışı ve istek & yanıt OpenCart'ta MVCL modelini, kod akışını ve istek ve yanıtı gösterir. Akışı aşağıdaki resimdeki gibi tanımlarlar: MVCL, Code ile tanımlandı

  7. Opencart modülünü Kurun, Yapılandırın ve Kaldırın Modülleri yüklemenin, ardından OpenCart 3 modülünü / uzantısını kurmanın, yapılandırmanın ve kaldırmanın üç yolunu gösterir.

  8. Opencart 3'teki düzenler ve konum OpenCart 3 düzenlerini ve konumlarını açıklar. Farklı sayfalar için düzenlerin nasıl özelleştirileceğini gösterir ve kategori sayfalarına örnekler verir. Farklı bir kategori için farklı düzeni gösteriyoruz.

  9. Opencart etkinliğine genel bakış OpenCart'ta Etkinliklerin ne olduğunu, nasıl çalıştığını ve onları neyin bu kadar yararlı kıldığını öğreneceksiniz.

  10. Geliştirici için Opencart API belgeleri Bu video, özel opencart API'sinin nasıl kullanılacağını ve yapılacağını gösterecektir

Bu videoları gördükten sonra kodlamaya başlayabilirsiniz :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.