PHP Giriş

PHP Giriş

PHP öğrenme çabası içerisindeki herkes için başlangıç seviyesinde bilgiler paylaşmayı hedeflediğim bu seride sıfırdan başlamışım gibi düşünerek yardımcı olmaya gayret edeceğim. Bu seri bir kurs değildir. Amacım öğrenme aşamasında anlamakta güçlük çekeceğiniz durumları aydınlatmaktır.

Bu serüvende sizlere başarılar dilerim.

Konu 1: Bir php dosyasını başka bir dosyadan çağırmak

functions.php isimli bir dosyamız olduğunu varsayalım. Bu dosyada yazılımınızın tamamında yada bir kısmında kullanmayı amaçladığınız genel fonksiyonlarınız var. Bu fonksiyonları tekrar tekrar yazmak yerine bir kere yazıp bir dosyanın içinde tutuyorsunuz. Daha sonra farklı bir dosyada bu fonksiyonu kullanmak istediğinizde include, require, include_once, require_once yöntemlerini kullanırsınız.

Neden birden fazla yöntem var?

Her bir yöntem de aynı işi görmektedir, ancak kullanım amaçlarında farklılıklar vardır.

-------------

include: Bir dosyanın başka bir dosyaya eklenmesi ve çalıştırılmasını sağlar. Ancak dosya mevcut konumda değilse kod uyarı verir ancak çalışmaya devam eder. 

Warning: include(functions.php): failed to open stream: No such file or directory in index.php on line 1

-------------

require: Bir dosyanın başka bir dosyaya eklenmesi ve çalıştırılmasını sağlar. Ancak dosya mevcut konumda değilse hata verir ve çalışmayı durdurur.

Fatal error: require(): Failed opening required ‘functions.php’ in index.php on line 1

-------------

include_once: Aynı include gibi davranır. Ancak aynı dosyanın birden fazla kez eklenmesini engeller. Bir döngü içerisinde veya sayfanın farklı yerlerinde aynı dosya include ile çağırılırsa, aynı dosya tekrar tekrar çalışır ve bellekte yük oluşmasını sağlar. include_once ise bunun önüne geçer.

-------------

require_once: Aynı include gibi davranır. Ancak aynı dosyanın birden fazla kez eklenmesini engeller. Bir döngü içerisinde veya sayfanın farklı yerlerinde aynı dosya require ile çağırılırsa, aynı dosya tekrar tekrar çalışır ve bellekte yük oluşmasını sağlar. require_once ise bunun önüne geçer.

Örnek

Her metot kabaca aynı işlevi gördüğü için sadece tek bir fonksiyon için örnek yapacağız.

functions.php

<?php

function dateFormat($time)
{
    $date = new DateTime();
    $date->setTimestamp($time);
    return $date->format('Y/m/d H:i:s');
}

index.php

<?php
include "functions.php";

echo dateFormat(1668866785);

Dönen değer: 2022/11/19 14:06:25

Nelere Dikkat Etmelisiniz?

includerequireinclude_oncerequire_once yöntemlerinin kullanımında dikkat etmeniz gereken şey dosya yollarına (file path) sadık kalınmasıdır.

Zira bir functions.php dosyanız /var/www/requires/ içerisindeyse ve index.php dosyanız /var/www/html/ içerisindeyse bu yukarıdaki örnekler çalışmayacaktır.

Örnek bir projenin dosya sistemini hazırlayalım:

  • /var/www/requires -> functions.php, library.php
  • /var/www/html -> index.php, header.php, footer.php
  • /var/www/public -> style.css, index.js, images

Bu dosya sisteminde index.php nin içinde functions.php eklemek için en stabil metot şöyledir.

<?php
include __DIR__."../requires/function.php";

__DIR__ Nedir?

Dosyanın bulurduğu klasördür (dizin). Dahil edilen bir dosyanın içinde kullanıldığında dahil edilen dosyanın dizini döner.

Örnek projemizde index.php içerisine echo __DIR__ yazdığımızda bize döneceği değer /var/www/html/ olacaktır. Ancak biz /var/www/requires dizini içerisindeki functions.php dosyasına erişmek istedik. O yüzden ../ ifadesiyle html dizininden dışarı çıktık ve requires dizinine girdik.

Comments


Yorum yazın







Tarih: