• 23-04-2024, 01:40:42
    #1
    Cümleten iyi geceler, PHP class yapısını anlamaya çalışıyorum. Bir konu kafamı oldukça kurcalıyor. Örnek olarak PHP ile çoklu dil desteği ve veri tabanı bağlantısı için 2 ayrı sınıf hazırladığımızı varsayalım. Veri tabanı bağlantı sınıfı içerisinde çoklu dil desteği sınıfını çağırdığımızı düşünelim, böyle bir durumda veri tabanı sınıfını başlattığımız tüm sayfalarda çoklu dil sınıfı da otomatik yüklenir mi, yani veri tabanı sınıfını dahil ettiğim tüm sayfalarda çoklu dil sınıfından bir fonksiyona erişebilir miyim?
  • 23-04-2024, 01:46:50
    #2
    Çoklu dil classını oluştururken extends VeritabanıClass şeklinde oluşturursanız dediğiniz gibi dil classını ve içindeki fonksiyonları kullandığınız her yerde veritabanı classından işlem yapabilirsiniz.

    Örnek:

    class Db{
    $siteAdi = “R10”;
    }

    class Lang extends Db{
    //yapacağınız işlemde $siteAdi değişkenini kullanabilirsiniz
    }
  • 23-04-2024, 01:53:10
    #3
    hyakbas adlı üyeden alıntı: mesajı görüntüle
    Çoklu dil classını oluştururken extends VeritabanıClass şeklinde oluşturursanız dediğiniz gibi dil classını ve içindeki fonksiyonları kullandığınız her yerde veritabanı classından işlem yapabilirsiniz.
    Yanıtınız için teşekkür ederim. Anladığım kadarıyla bu senaryoda yalnızca 1 sınıf dahil edilebiliyor. HTML sıkıştırma vb. tüm sayfalarda çalışması gereken diğer classlar dahil edilemeyecek. Yanlış mı biliyorum?
  • 23-04-2024, 01:56:06
    #4
    AKSOYOGLU adlı üyeden alıntı: mesajı görüntüle
    Yanıtınız için teşekkür ederim. Anladığım kadarıyla bu senaryoda yalnızca 1 sınıf extend edilebiliyor. HTML sıkıştırma vb. tüm sayfalarda çalışması gereken classlar dahil edilemeyecek. Yanlış mı biliyorum?
    Rica ederim 😊 Üst üste birkaç sınıf extend edebilirsiniz.
    Örneğin

    class Db{}
    class Lang extends Db{}
    class hyakbas extends Lang{
    //burada yaptığınız işlemlerde hem Db hem Lang classlarına erişebilirsiniz.
    }

    Telefonda kod editörü açılmıyor biraz karışık oluyor 😊
  • 23-04-2024, 02:02:12
    #5
    hyakbas adlı üyeden alıntı: mesajı görüntüle
    Rica ederim 😊 Üst üste birkaç sınıf extend edebilirsiniz.
    Örneğin

    class Db{}
    class Lang extends Db{}
    class hyakbas extends Lang{
    //burada yaptığınız işlemlerde hem Db hem Lang classlarına erişebilirsiniz.
    }

    Telefonda kod editörü açılmıyor biraz karışık oluyor 😊
    Hocam vakit ayırıp, yanıt verdiğiniz için teşekkür ederim. ChatGPT bu yaklaşım performans için kötü bir yöntem, "İmplement" yöntemi kullanmanız daha doğru olur diyor. Sebebi ne olabilir, gerçekli payı var mı sizce?
  • 23-04-2024, 02:09:20
    #6
    AKSOYOGLU adlı üyeden alıntı: mesajı görüntüle
    Hocam vakit ayırıp, yanıt verdiğiniz için teşekkür ederim. ChatGPT bu yaklaşım performans için kötü bir yöntem, "İmplement" yöntemi kullanmanız daha doğru olur diyor. Sebebi ne olabilir, gerçekli payı var mı sizce?
    Tekrar rica ederim hocam implement konusunda fazla bilgiye sahip değilim açıkçası. Bu yüzden aralarında nasıl bir fark olduğunu bilmiyorum

    Edit: Yazan olursa beni de etiketlerseniz sevinirim merak ettim
  • 23-04-2024, 02:15:01
    #7
    Merhaba über seviye bir kurs değil ama basit sorularınız için şu kaynak işinizi görür.

    Ek olarak tüm classlarınızı boot edebilmek için php autoloading kısmını incelemenizi öneririm.
    Birden çok metod var;

    - https://www.php.net/manual/en/langua...5.autoload.php
    - https://opensource.com/article/23/4/...namespaces-php

    Tabi bunlara ek olarak;

    - namespacing
    - psr-4 gibi standartları da incelemeniz gerekir.

    Yetmeyecektir

    - SOLID prensiplerini araştırmanız gerekir.

    Yetmeyecektir.

    - Laravel ile alakalı araştırma yapmanızı öneririm.

    Yetmeyecektir,

    - Bu işin ağa babası eserlerden almanızı şiddetle okumanızı izlemenizi tavsiye edeceğim.
    - https://spatie.be/products/laravel-beyond-crud

    Yetmeyecektir,

    - Stackoverflow ile içli dışlı olmanız lazım gelir.

    Bu arada herşeyden evvel İngilizce'niz yok ise bu işe İngilizce öğrenerek başlamnızı öneririm.

    Youtube eğitim url : https://www.kisa.link/UzrfT
    Not : eğitim sahibi ben değilim

    Ve şunu kesinlikle izlemelisiniz. : https://laracasts.com/series/php-for...s-2023-edition

    Ek kaynaklar :

    - Starndartlar için daha iyi PHP geliştiricilerin hayatımızda var olması için; https://www.php-fig.org
    - DI için, https://php-di.org/doc/understanding-di.html

    Teşekkürler @ghergedan; ek kaynaklar için.
  • 23-04-2024, 02:51:40
    #8
    https://www.php-fig.org/
    https://php-di.org/doc/understanding-di.html

    yukarıda arkadaş güzel bir yol haritası sunmuş. konu hakkında merak sahibi olmanız güzel. tam anlamıyla temel atıyorsunuz şu an. tavsiyem, bu temeli atmadan kod yazmayın. sonra kavramak çok daha zor olacaktır. solid prensipleri araştırın, github'da kod inceleyin, kopyalayın, deneyin. ne yaptığınızın farkında olarak kod yazın. sonra laravel de yazarsınız, java da, c# da. mantığı kavrayın. arkası çorap söküğü gibi gelecektir.
  • 23-04-2024, 02:59:05
    #9
    ghergedan adlı üyeden alıntı: mesajı görüntüle
    https://www.php-fig.org/
    https://php-di.org/doc/understanding-di.html

    yukarıda arkadaş güzel bir yol haritası sunmuş. konu hakkında merak sahibi olmanız güzel. tam anlamıyla temel atıyorsunuz şu an. tavsiyem, bu temeli atmadan kod yazmayın. sonra kavramak çok daha zor olacaktır. solid prensipleri araştırın, github'da kod inceleyin, kopyalayın, deneyin. ne yaptığınızın farkında olarak kod yazın. sonra laravel de yazarsınız, java da, c# da. mantığı kavrayın. arkası çorap söküğü gibi gelecektir.
    php-fig'i eklemeyi unutmuşum. ekliyorum. teşekkürler anımsattığınız için. umarım herkes için fayda sağlar.