コード例 #1
0
 public static function run()
 {
     $datas = self::datas();
     $parameters = $datas['parameters'];
     $page = $datas['page'];
     $isFile = $datas['isFile'];
     $function = $datas['function'];
     // TAMPONLAMA BAŞLATILIYOR...
     if (Config::get('Cache', 'obGzhandler') && substr_count(server('acceptEncoding'), 'gzip')) {
         ob_start('ob_gzhandler');
     } else {
         ob_start();
     }
     // ----------------------------------------------------------------------
     // BAŞLIK BİLGİLERİ DÜZENLENİYOR...
     headers(Config::get('Headers', 'settings'));
     // ----------------------------------------------------------------------
     // SAYFA KONTROLÜ YAPILIYOR...
     // -------------------------------------------------------------------------------
     //  Sayfa bilgisine erişilmişse sayfa dahil edilir.
     // -------------------------------------------------------------------------------
     if (file_exists($isFile)) {
         // -------------------------------------------------------------------------------
         //  Tadilat modu açıksa bu ayarlar geçerli olacaktır.
         // -------------------------------------------------------------------------------
         if (Config::get('Repair', 'mode') === true) {
             Repair::mode();
         }
         // -------------------------------------------------------------------------------
         //  Sayfa dahil ediliyor.
         // -------------------------------------------------------------------------------
         require_once $isFile;
         // -------------------------------------------------------------------------------
         // Sayfaya ait controller nesnesi oluşturuluyor.
         // -------------------------------------------------------------------------------
         if (class_exists($page, false)) {
             $var = new $page();
             // -------------------------------------------------------------------------------
             // Sınıf ve yöntem bilgileri geçerli ise sayfayı çalıştır.
             // -------------------------------------------------------------------------------
             if (is_callable(array($var, $function))) {
                 if (APP_TYPE === 'local') {
                     set_error_handler('Exceptions::table');
                 }
                 call_user_func_array(array($var, $function), $parameters);
                 if (APP_TYPE === 'local') {
                     restore_error_handler();
                 }
             } else {
                 // Sayfa bilgisine erişilemezse hata bildir.
                 if (!Config::get('Route', 'show404')) {
                     // Hatayı ekrana yazdır.
                     echo Error::message('Error', 'callUserFuncArrayError', $function);
                     // Hatayı rapor et.
                     report('Error', getMessage('Error', 'callUserFuncArrayError'), 'SystemCallUserFuncArrayError');
                     // Çalışmayı durdur.
                     return false;
                 } else {
                     redirect(Config::get('Route', 'show404'));
                 }
             }
         }
     } else {
         // Sayfa bilgisine erişilemezse hata bildir.
         if (Config::get('Route', 'show404')) {
             redirect(Config::get('Route', 'show404'));
         } else {
             // Hatayı ekrana yazdır.
             echo Error::message('Error', 'notIsFileError', $isFile);
             // Hatayı rapor et.
             report('Error', getMessage('Error', 'notIsFileError'), 'SystemNotIsFileError');
             // Çalışmayı durdur.
             return false;
         }
     }
     // ----------------------------------------------------------------------
     // TAMPONLAMA KAPATILIYOR...
     ob_end_flush();
     // ----------------------------------------------------------------------
 }
コード例 #2
0
ファイル: Structure.php プロジェクト: erdidoqan/znframework
 public static function run()
 {
     /* Page Değişkeni
      *
      * Controller/page.php bilgisini
      * tutması çin oluşturulmuştur.
      */
     $page = '';
     /* Function Değişkeni
      *
      * Page/Function bilgisini
      * tutaması için oluşturulmuştur.
      */
     $function = 'index';
     /* Parameters Dizi Değişkeni
      *
      * Url adresindeki parametre bilgilerini
      * tutması için oluşturulmuştur.
      */
     $parameters = array();
     /* Segments Değişkeni
      *
      * Url adresinin parametre bölümlerini
      * tutması için oluşturulmuştur.
      */
     $segments = '';
     /* Is Fıle Değişkeni
      *
      * Girilen Url adresinin geçerli bir.
      * sayfa olma durumun kontrol etmesi için oluşturulmuştur.
      */
     $isFile = '';
     /* Request Uri Değişkeni
      *
      * Ziyaretçi URL adresini
      * tutması için oluşturulmuştur.
      */
     $requestUri = requestUri();
     // -------------------------------------------------------------------------------
     //  $_GET kontrolü yapılarak temel URL bilgisi elde ediliyor.
     // -------------------------------------------------------------------------------
     $url = explode('?', $requestUri);
     // -------------------------------------------------------------------------------
     //  Temel URL adresi / karakteri ile bölümlere ayrılıyor.
     // -------------------------------------------------------------------------------
     $segments = explode('/', $url[0]);
     // -------------------------------------------------------------------------------
     //  Controller/Sayfa: Controller/ dizini içinde çalıştırılacak dosya adı.
     // -------------------------------------------------------------------------------
     if (isset($segments[0])) {
         $page = $segments[0];
         $isFile = CONTROLLERS_DIR . suffix($page, '.php');
         unset($segments[0]);
         // Bir Controller/ dosyası index kelimesi ile isimlendirilemez!
         if (strtolower($page) === 'index') {
             // Hatayı ekrana yazdır.
             echo Error::message('Error', 'controllerNameError', $page);
             // Hatayı rapor et.
             report('Error', getMessage('Error', 'controllerNameError'), 'ControllerNameError');
             // Çalışmayı durdur.
             return false;
         }
     }
     // -------------------------------------------------------------------------------
     //  Fonksiyon: Çalıştırılacak dosyaya ait yöntem adı.
     // -------------------------------------------------------------------------------
     if (isset($segments[1])) {
         $function = $segments[1];
         unset($segments[1]);
     }
     // -------------------------------------------------------------------------------
     //  Parametreler: Çalıştırılacak yönteme gönderilecek parametreler.
     // -------------------------------------------------------------------------------
     if (isset($segments[2])) {
         $parameters = $segments;
     }
     // ----------------------------------------------------------------------
     // TAMPONLAMA BAŞLATILIYOR...
     if (Config::get('Cache', 'obGzhandler') && substr_count(server('acceptEncoding'), 'gzip')) {
         ob_start('ob_gzhandler');
     } else {
         ob_start();
     }
     // ----------------------------------------------------------------------
     // BAŞLIK BİLGİLERİ DÜZENLENİYOR...
     headers(Config::get('Headers', 'settings'));
     // ----------------------------------------------------------------------
     // SAYFA KONTROLÜ YAPILIYOR...
     // -------------------------------------------------------------------------------
     //  Sayfa bilgisine erişilmişse sayfa dahil edilir.
     // -------------------------------------------------------------------------------
     if (file_exists($isFile)) {
         // -------------------------------------------------------------------------------
         //  Tadilat modu açıksa bu ayarlar geçerli olacaktır.
         // -------------------------------------------------------------------------------
         if (Config::get('Repair', 'mode')) {
             Repair::mode();
         }
         // -------------------------------------------------------------------------------
         //  Sayfa dahil ediliyor.
         // -------------------------------------------------------------------------------
         require_once $isFile;
         // -------------------------------------------------------------------------------
         // Sayfaya ait controller nesnesi oluşturuluyor.
         // -------------------------------------------------------------------------------
         $var = new $page();
         // -------------------------------------------------------------------------------
         // Sınıf ve yöntem bilgileri geçerli ise sayfayı çalıştır.
         // -------------------------------------------------------------------------------
         if (is_callable(array($var, $function))) {
             if (APP_TYPE === 'local') {
                 set_error_handler('Exceptions::table');
             }
             call_user_func_array(array($var, $function), $parameters);
             if (APP_TYPE === 'local') {
                 restore_error_handler();
             }
         } else {
             // Sayfa bilgisine erişilemezse hata bildir.
             if (!Config::get('Route', 'show404')) {
                 // Hatayı ekrana yazdır.
                 echo Error::message('Error', 'callUserFuncArrayError', $function);
                 // Hatayı rapor et.
                 report('Error', getMessage('Error', 'callUserFuncArrayError'), 'SystemCallUserFuncArrayError');
                 // Çalışmayı durdur.
                 return false;
             } else {
                 redirect(Config::get('Route', 'show404'));
             }
         }
     } else {
         // Sayfa bilgisine erişilemezse hata bildir.
         if (Config::get('Route', 'show404')) {
             redirect(Config::get('Route', 'show404'));
         } else {
             // Hatayı ekrana yazdır.
             echo Error::message('Error', 'notIsFileError', $isFile);
             // Hatayı rapor et.
             report('Error', getMessage('Error', 'notIsFileError'), 'SystemNotIsFileError');
             // Çalışmayı durdur.
             return false;
         }
     }
     // ----------------------------------------------------------------------
     // TAMPONLAMA KAPATILIYOR...
     ob_end_flush();
     // ----------------------------------------------------------------------
 }