tr-opencart

     
avatar Şuanki Zaman: 05-18-2024, 04:44 PMHoşgeldin Misafir !
  Şifremi Hatırlat   kayıt ol
opencart temaları

Opencart'ı Anlamak Bölüm 2- system dizini ve startup.php

Konuyu görüntüleyenler: 1 Misafir
 
Değerlendir:
  • 2 Oy - 5 Yüzde
  • 1
  • 2
  • 3
  • 4
  • 5
%
Cevapla  Gönder 
v  v
Yazar  sabitertan - Görüntüleme - Okunma  18234 - Yorum  3

sabitertanv
Süper Moderator
******
Süper Moderator user avatar
Çevrimdışı

Mesajlar: 290
Konular: 31
Katılma Tarihi: Dec 2011
Rep Puanı: 21
Teşekkürler: 22
127 Mesajına, 601 Teşekkür edildi.



Kişisel Bilgileri: v
Konu Tarihi: 07-16-2013 09:05 AM

Bu bölümü okumaya başlamadan Opencart'ı Anlamak Bölüm 1-index.php yazısını okuduğunuzu varsayıyorum. Çünkü orada anlatılan temel işlevleri tekrar etmeyeceğiz.

Bu başlıkta herkesin gözünü korkutan dokunsanız kırılacak sandığınız system dizini hakkında genel bir bilgi ve bu dizin içerisindeki startup.php'yi inceleyeceğiz.

system dizini adından da anlaşılacağı üzere opencart sisteminin anaçatısını(framework) oluşturur. Opencart içinde kullanılacak tüm Sınıflar(Class), Yöntemler(Method), İşlevler(Function), veri düzenleyicileri(json veri yapısı oluşturma, utf8 dönüştürme) ve tüm bunların bir uyum içinde çalışmasını sağlayacak sistem motoru(system/engine) bu dizin içerisindedir.

Belki bir çoğumuz bu dizine hiç girmedik, bazılarımızsa system/cache önbellek dizinini arasıra temizleme ihtiyacı duyduğu için bu dizini ziyaret etmiştir. Halbuki opencartın beyni, kalbi, iskeleti, tüm yaşamsal organları burada tanımlıdır. Bu dizinin anlamını biraz daha anlayabilmek için aşağıdaki benzetmeyi yapalım;
catalog ve admin dizinlerinin aksine burada "model","view","controller" dizinleri yoktur. Burada o dizinlere anlam verecek esas yapı mevcuttur. catalog ve admin bizlerin dışarıdan gördüğü kas ve deri diyebiliriz, ama içinde iskelet olmayan bir deri ve kas yığını nasıl görünecekse, system dizini olmadan ne catalog ne de admin dizinlerinin bir anlamı yoktur.
Şimdi sırasıyla dizinleri inceleyelim

system/cache

Bu dizin önbellek dediğimiz kısmı oluşturur ve sistem içerisinde kullanılan genel işlevlerin, sınıfların bir nevi derlenmiş kullanıma hazır hallerini saklar. Bu dizine gelen ve burada saklanan dosyalar bizlere halihazırda tamamlanmış bir sitenin çok daha hızlı ve verimli çalışması olanağını sunar. Bu dizin içerisinde dosyaları eğer sitenizde bir değişiklik yapmıyorsanız silmenize gerek yoktur.

system/config

En gizemli dizinimiz diyebilirim Smile . Bu dizin içerisinde sadece index.html ile gelir. index.html in orada bulunmasının tek sebebi github.com un boş dizinlere izin vermemesidir. Bu nedenle aslında boş olması gerekn tüm opencart dizinlerinde index.html dosyasını görürsünüz.
Bu dizin aslında çok ileri düzey ayarları ekleyebilmemizi sağlar. Burada oluşturacağımız myconfig.php içerisine aşağıdaki gibi ayarlar tanımlayabiliriz.
PHP Kod:
$_['maximum_users']='100';
$_['maximum_sql_connection_per_user']='2';
$_['mywebsite_motto']='Dünyayı Güzellik Kurtaracak, Bir insanı sevmekle başlayacak herşey!'
Tanımladığımız bu özel ayarları
$config->load('myconfig');
komutunu index.php ye ekleyerek daha sonra istediğimiz yerden çağırabiliriz. Bu şekilde veritabanında saklamak istemediğimiz ve gerek catalog gerekse admin tarafında kullanmak istediğimiz ayarları bu dosya yardımıyla çağırabiliriz.

system/database

Bu dizinde değişik veritabanı sunucularıyla iletişimi sağlayacak sınıflar tanımlıdır. Opencart geliştiricileri bunları ayrı dosyalarda sunucu isimleriyle saklamayı uygun görmüşlerdir. Bu nedenle burada adını gördüğümüz tüm veritabanı sunucuları opencart ile kullanılabilmektedir. Bunlar dizin içerisinde de görüleceği gibi MSSQL, MySQL, MySQLi ve PostgreSQL veritabanı sunucularıdır.
PDO (PHP Data Object) desteği olan sunucuları desteklemek için ise pdo.php dosyasını görmekteyiz. PDO bir çok veritabanı sunucu için bir ara katman oluşturur. Böylece eğer veritabanı sunucusu değiştirilecekse veritabanını baştan yazmamız gerekmez. İlgili veritabanı için yazılmış PDO sürücüsünü sunucumuza kurmak yeterli olacaktır.
Sunucunuzun hangi veritabanı sunucularıda PDO sürücüsü sağladığını öğrenmek için phpinfo() çalıştırılarak "PDO drivers" bölümüne bakarak, PDO sürücüsü etkinleştirilmiş veritabanı sunucularını görebiliriz.
Önemli Not: Opencart şu anda sadece mysql ile tam uyumlu çalışmaktadır.
system/engine

Bu dizin bütün opencart çatısının temelini oluşturur. index.php de çağrılma sırasıyla registry, loader, front, action son sınıflarını ve controller,model özet(php.net'de ve diğer birçok kaynakta soyutlama sınıfı dense de pek bir SOYUT kaldığı için ben burada daha anlaşılır olarak özet demeyi tercih ediyorum) sınıflarını içerir. Bu sınıfları da daha sonra detaylı inceleyeceğiz ancak kısaca ne işe yaradıklarından bahsedelim.

registry.php : opencart içerisinde çağrılabilecek tüm alt nesnelerin oluşturulması, saklanması, değiştirilmesi ve gerektiğinde çağrılabilmesini sağlar.
loader.php : opencartta sıklıkla kullanacağımız, "set", "get", "library", "helper", "model", "database", "language", "config" gibi işlevlerin sisteme eklenmesini sağlar.
front.php : kullanacağımız tüm controller sınıflarını biraraya getirmemizi sağlar.
action.php : kullanmak istediğimiz tüm sınıf, metod, dosya ve değişkenlerin tanımlı olup olmadığına bakar ve sonucu bize döndürür.
controller.php : Tüm controller sınıflarının özet sınıfını oluşturur. Tüm controller sınıfları bu özet sınıf içerisine genişletilir. (class ControllerCommonHeader extends Controller, örneğinde olduğu gibi)
model.php : Tüm model sınıflarının özet sınıfını oluşturur. Tüm model sınıfları bu özet sınıf içerisine genişletilir. (class ModelCatalogCategory extends Model, örneğinde olduğu gibi)

system/helper

Bu dizin içerisinde adı üstünde "yardımcı" işlevler bulunmaktadır. Herhangi bir sınıfa ait olmayan ve bir nesne parçası oluşturmayan işlevler buradadır. Buradaki işlevlerin esas amacı verilen veri yığınını süzüp, düzenleyip geri göndermektir.

system/library

Tüm temel opencart işlem sınıfları burada bulunmaktadır. Temel işlevlerin tamamı buradadır. Kategori tnaımları, Ürün tanımları, ağırlık, kur gibi aklınıza gelecek her türlü temel tanımların işlevleri bu dizin içerisinde yer alır. Genel anlamda bu dosyaların yapıları da birbirlerine benzer. Herbiri adını taşıdığı bileşenle ilgili veritabanından belirli bir veriyi alıp düzenlemek ve çağrıldığı yere geri göndermek işlerini gerçekleştirirler. Buradaki işlevleri detaylı olarak açıklamayacağım, ancak örnek olarak;
customer.php müşteri bilgilerini veritabanından alır ve müşteri ile ilgili çağrılacak tüm değişkenleri ve işlevleri oluşturur. Bununla da kalmaz müşterinin giriş yapıp yapmadığının bilgisini de bize verir.

system/logs

opencart sisteminin hata ve erişim kayıtlarının tutulduğu dizindir. Sistemde bir değişlik yaptınız ve yaptığınız değişilik size hiçbir hata vermeden sitenizi bozduysa ilk bakmanız gereken yer bu dizin içerisinde bir error.txt yada error.log dosyasının olup olmamasıdır ve eğer var ise bu dosyayı açıp inceleyerek hataları gözden geçirebilirsiniz.
sabitertan
Forumuna sahip çık! .:|Bağış Yap|:.
Alıntı Yaparak Cevapla
Paylaş!
 Teşekkür Edenler: karaer , unblanced , ne-x99n , modaekseni
sabitertanv
Süper Moderator
******
Süper Moderator user avatar
Çevrimdışı

Mesajlar: 290
Konular: 31
Katılma Tarihi: Dec 2011
Rep Puanı: 21
Teşekkürler: 22
127 Mesajına, 601 Teşekkür edildi.



Kişisel Bilgileri: v
Konu Tarihi: 07-16-2013 09:21 PM
Sıra geldi startup.php'ye. Bu dosyamız bizim için sunucu ayarlarını denetler ve genel anlamda karşımıza çıkacak bir çok sorundan bizi en başından kurtarır. Kısım kısım inceleyelim.

PHP Kod:
error_reporting(E_ALL); 
Bu kod php yapılandırması izin veriyorsa php sisteminin hata raporlamasının tüm hataları ve uyarıları dikkate almasını ve opencart sistemine döndermesini söyler.

PHP Kod:
version_compare(phpversion(), '5.1.0''<') == true 
buradaki "version_compare" temel php işlevlerinden biridir ve sürümler arası karşılaştırma yapar. İllaki php sürümü değil herhangi bir php kütüphanesini hatta sunucumuzda kurulu diğer bazı kütüphaneleri de sorgulamamızı sağlar. Burada görüldüğü gibi phpversion() işlevi ile sunucunun php sürümününün 5.1.0 dan büyük olup olmadığını sorgulamaktayız. Eğer sürüm 5.1.0 dan küçük ise opencart çalışmayı durduracaktır.

"//Register Globals" ile başlayıp "// Magic Quotes Fix" satırına kadar devam eden bölüm eğer register_globals etkin ise bununla alakalı oluşacak sorunlardan sistmimizi uzak tutmak için bir takım sunucu değişkenlerini ve ayarlarını değiştirir. "register_globals" uzun bir süre tartışma konusu olmuşsa da 5.3 sürümü ile önerilmemekte ve varsayılan olarak "Off" yani kapalı gelmektedir. Unutkan ya da hızlı geliştirme yapmaya çalışan bir kullanıcı için güvenlik sorunlarına yol açtığından php 6.0 da tamamen kaldırılacaktır. Sunucunuzda bu özelliğin "Off" olmasına dikkat edin.

"// Magic Quotes Fix" ile başlayan bölüm magic_quotes_gpc özelliğinin etkin olup olmadığını etkin ise bazı özelliklerde değişiklik yapmayı sağlar. magic_quotes_gpc aslında bir güvenlik özelliği olarak tasarlanmış olmasına rağmen, günümüzde genel bir ayrım yapmadan her türlü tırnak, çift tırnak,bölü işaretlerinden önce ters bölü işareti eklemesinden ötürü tercih edilmemektedir. php 6.0'da bu özellikte tamamen kaldırılacaktır. her giden gelen veriye stripslashes() komutunu uygulamamızı gerektireceğinden performans sorunlarına yol açan bir özelliktir. Sunucunuzda bu özelliğin de "Off" olmasına dikkat edin.

PHP Kod:
if (!ini_get('date.timezone')) {
    
date_default_timezone_set('UTC');

Bu komut eğer sunucu tarafından bir zaman dilimi tanımlanmamışsa UTC(Universal Time Coordinated, Ortak Evrensel Zaman) zaman dilimini esas almayı sağlar.

"// Windows IIS Compatibility" ile başlayıp "// Helper" ile biten bölüm herkesin uzak durmasını ŞİDDETLE önerdiğimiz Windows sunucularının sıkıntılarını aşmak için yazılmış bölümdür. Fazla söze gerek yok startup.php nin en büyük düzeltme işlevi yaptığı bölümdür bu nedenle performans sorunlarına yol açacaktır. Windows sunucuda opencart kurup niye sunucum yavaş diye hiç düşünmeyin işte size kanıtı Smile

"//Helper", "Engine", "Common" bölümleri daha önce anlattığımız Sınıfların ve Yardımcıların yüklenmesini sağlar.

Şimdi gelelim startup.php de performans geliştirmesine eğer aşağıdaki şartları sağlıyorsanız startup.php yi biraz daha küçülterek kayda değer bir performans iyileştirmesi sağlarsınız.
1. Unix, Linux tabanlı sunucular kullanıyorsanız
2. php.ini dosyanızda (phpinfo() ile de görebilirsiniz) "register_globals=Off" ise
3. php.ini dosyanızda (phpinfo() ile de görebilirsiniz) "magic_quotes_gpc=Off" ise
4. php.ini dosyanızda (phpinfo() ile de görebilirsiniz) date.timezone tanımlı ise

yukarıdaki 4 özelliği de sağlıyorsanız startup.php de
// Check Version ile başlayıp
// Helper ile biten tüm bölümleri silebilirsiniz. yani startup.php dosyanızı şu hale getirebilirsiniz
PHP Kod:
<?php
// Error Reporting
error_reporting(E_ALL);

// Helper
require_once(DIR_SYSTEM 'helper/json.php'); 
require_once(
DIR_SYSTEM 'helper/utf8.php'); 

// Engine
require_once(DIR_SYSTEM 'engine/action.php'); 
require_once(
DIR_SYSTEM 'engine/controller.php');
require_once(
DIR_SYSTEM 'engine/front.php');
require_once(
DIR_SYSTEM 'engine/loader.php'); 
require_once(
DIR_SYSTEM 'engine/model.php');
require_once(
DIR_SYSTEM 'engine/registry.php');

// Common
require_once(DIR_SYSTEM 'library/cache.php');
require_once(
DIR_SYSTEM 'library/url.php');
require_once(
DIR_SYSTEM 'library/config.php');
require_once(
DIR_SYSTEM 'library/db.php');
require_once(
DIR_SYSTEM 'library/document.php');
require_once(
DIR_SYSTEM 'library/encryption.php');
require_once(
DIR_SYSTEM 'library/image.php');
require_once(
DIR_SYSTEM 'library/language.php');
require_once(
DIR_SYSTEM 'library/log.php');
require_once(
DIR_SYSTEM 'library/mail.php');
require_once(
DIR_SYSTEM 'library/pagination.php');
require_once(
DIR_SYSTEM 'library/request.php');
require_once(
DIR_SYSTEM 'library/response.php');
require_once(
DIR_SYSTEM 'library/session.php');
require_once(
DIR_SYSTEM 'library/template.php'); 

Bu bölümde anlatacaklarım bu kadar, herkese faydalı olması dileğiyle.
sabitertan
Forumuna sahip çık! .:|Bağış Yap|:.
Alıntı Yaparak Cevapla
Paylaş!
 Teşekkür Edenler: karaer , tiktak78 , unblanced , ne-x99n
sabitertanv
Süper Moderator
******
Süper Moderator user avatar
Çevrimdışı

Mesajlar: 290
Konular: 31
Katılma Tarihi: Dec 2011
Rep Puanı: 21
Teşekkürler: 22
127 Mesajına, 601 Teşekkür edildi.



Kişisel Bilgileri: v
Konu Tarihi: 07-27-2013 03:51 PM
Söylemeyi unuttuğumuz bir diğer konuyu belirteyim burada. Eğer sitenizde geliştirme işlemi yapmıyorsanız startup.php den aşağıdaki satırı da silebilirsiniz.
PHP Kod:
// Error Reporting
error_reporting(E_ALL); 
sabitertan
Forumuna sahip çık! .:|Bağış Yap|:.
Alıntı Yaparak Cevapla
Paylaş!
 Teşekkür Edenler: unblanced , nokta , ne-x99n
GokhanKorkutv
Deli (:
***
V.İ.P Premium user avatar
Çevrimdışı

Mesajlar: 227
Konular: 9
Katılma Tarihi: Sep 2012
Rep Puanı: 6
Teşekkürler: 18
81 Mesajına, 183 Teşekkür edildi.



Kişisel Bilgileri: v
Konu Tarihi: 07-28-2013 01:19 PM
Çok güzel bir yazı olmuş, elinize sağlık.

Ayrıca bir noktaya daha değinmek gerekir.

Altını:
"Windows Hosting
Windows hosting, asp, asp.net , Microsoft SQL yazılımlarını çalıştırmak için kullanılan bir platforma sahiptir. Bu alanda php yazılımlardan ziyade asp yazılımlar kullanılmalıdır.

Linux Hosting
Linux hosting, php tabanlı yazılımlar için ideal ortama sahiptir, bazı php yazılımların gereksinimleri olan ek modullerin tamamı linux sunucular üzerine rahatlıkla kurulabilirler."

Sitenizi kurmaya başlamadan önce, sunucunuzun Linux olmasına dikkat etmekte yarar vardır. Bir çok eklenti windows sunuculardan çok daha rahat çalışmaktadır.

Yani şöyle düşünün; Bir Mac PC'de Mac Os X çalışmasıyla, Windows üzerinde Virtual olarak Mac Os X çalıştırmak aynı performansı vermez. Belki çalıştırabilirsiniz ancak Mac Os X'in bütün özelliklerini kullanamazsınız.
GokhanKorkut
www.gokhankorkut.com
because we share life..

Alıntı Yaparak Cevapla
Paylaş!
 Teşekkür Edenler: nokta , e-ticaretdersleri , webcihakan

« Önceki | Sonraki »
Cevapla  Gönder 

Opencart'ı Anlamak Bölüm 2- system dizini ve startup.php Konusunun Linki Direk Link
Opencart'ı Anlamak Bölüm 2- system dizini ve startup.php Konusunun HTML Kodu HTML Link
Opencart'ı Anlamak Bölüm 2- system dizini ve startup.php Konusu BBCode Linki BBCode Link
Opencart'ı Anlamak Bölüm 2- system dizini ve startup.php Konusunu Paylaş Sosyal Paylaş

Benzeyen Konular
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  [Video] Opencart 1.5.x Seo Link Sadece Ürün İsmi Olsun e-ticaretdersleri 5 13,286 10-17-2017 05:34 PM
Son Mesaj: fotoğrafçı
  Opencart 2 Afiş Boyutları tolozgun 2 14,421 02-02-2016 08:04 PM
Son Mesaj: tolozgun
  Opencart 1.5.x tüm versiyonlarda Slayt ve afiş(banner)oluşturmak (resimli anlatım) osdem66 9 22,355 01-26-2015 04:18 PM
Son Mesaj: can.55
  Opencart'ı Anlamak Bölüm 4 Basit Bir Eklenti Yazalım sabitertan 2 20,746 08-25-2013 09:35 AM
Son Mesaj: sabitertan
  Opencart'ı Anlamak Bölüm 3 Opencartta MVC +L sabitertan 2 16,636 08-22-2013 09:54 AM
Son Mesaj: unsound
  Opencart'ı Anlamak Bölüm 1- index.php sabitertan 3 14,488 07-14-2013 05:20 PM
Son Mesaj: sabitertan

Opencart'ı Anlamak Bölüm 2- system dizini ve startup.php indir, Opencart'ı Anlamak Bölüm 2- system dizini ve startup.php Videosu, Opencart'ı Anlamak Bölüm 2- system dizini ve startup.php online izle, Opencart'ı Anlamak Bölüm 2- system dizini ve startup.php Bedava indir, Opencart'ı Anlamak Bölüm 2- system dizini ve startup.php Yükle, Opencart'ı Anlamak Bölüm 2- system dizini ve startup.php Hakkında, Opencart'ı Anlamak Bölüm 2- system dizini ve startup.php nedir, Opencart'ı Anlamak Bölüm 2- system dizini ve startup.php Free indir, Opencart'ı Anlamak Bölüm 2- system dizini ve startup.php oyunu, Opencart'ı Anlamak Bölüm 2- system dizini ve startup.php download


Forum Atla: