• 12-01-2019, 21:24:50
    #1
    Üyeliği durduruldu
    Merhaba arkadaşlar,

    Spagetti kod yazımı diye tabir edilen şekilde kod yazmaktayım bu da geriye dönük projeye baktığım zaman ister istemez karışık gelebiliyor ve düzenlemek çin işkencesi dönüyor ve bir başkası projelerime yardım amaçlı müdahale etmek istediği zamanda karışık geldiği için geri çekiliyor. İnternetten araştırdığım kadarıyla MVC ile daha düzenli oluyormuş. MVC alanında kendimi nasıl geliştirebilirim kaynaklar var mı kendimi geliştirebileceğim bu konu hakkında bilgi sahibi ve uzmanlar arkadaşlar yol gösterirse sevirim.

    Aynı zamanda API konularında kendimi geliştirmek istiyorum kaynak ve yol gösterirseniz mutlu edersiniz.

    İyi forumlar.
  • 13-01-2019, 00:30:44
    #2
    Php frameworkleri hakkında araştırma yapıp bir tercih yapmanız en iyisi olur. Şuanda bütün projelerimde Laravel kullanmaktayım ve memnunum. Önerebileceğim bir diğer framework ise Codeigniter dır. Frameworklerin temel amacı MVC yapısı kullanmaktır. Bu belirttiğim 2 framework dışında bir çok framework bulunmakta. Hangisiyle proje geliştireceğiniz sizin tercihinize ve projenizin ihtiyaçlarına kalmış bir şeydir. Framework seçmeden önce hem frameworkler hakkında detaylı bir araştırma hem de MVC yapısını iyice kavramanızı tavsiye edebilirim. Laravel ve Codeigniter en yaygın php frameworkleridir. Google, youtube, udemy üzerinden çok rahat derslerine ulaşabilir ve 1 hafta içinde öğrendiğiniz framework ile proje geliştirebilir duruma gelebileceğinize inanıyorum.

    Kısaca MVC yapısını anlatmaya çalışayım. Hatalı bir bilgi verebilirim şuan tamamen aklımdakileri yazıyorum. Daha sağlıklı bilgi amacı öğretmek olan ve uğraşılmış bir ders üzerinden bilgi edinmeniz daha iyi olur. En temelden başlangıç nesne yönelimli programlamaya(OOP) bakmaktır.

    MVC: Model, View, Controller.

    Model: Projelerinizde kullanacağınız nesnelerin oluşturulduğu kısımdır. (Örnek: Veritabanındaki verilerinizi nesne olarak projeye tanımlamaktır. Çoğu framework bunu otomatik olarak yapar frameworkün kolaylıklarından biride budur. Siz sadece veritabanı bağlantınızı yaparsınız model dosyanıza tablonuzu belirtirsiniz ve bu nesneleri kullanmak istediğiniz controller dosyasına modelinizi tanımlamanız yeterli olur.)

    View: Bütün görüntü (html,vb.) dosyalarınızdır.

    Controller: Sunucunuza gelen istekler doğrultusunda çalışacak dosyanızdır. Bunu direk giris.php şeklinde düşünebilirsiniz. Fakat aradaki farkı burada sadece adındanda anlaşılacağı gibi kontroller, veritabanı işlemleri vb. şeyler yapılır. Görüntü(view) dosyanız burada çağrılır ve istek yapan kullanıcıya döndürülür.


    Toparlayacak olursak; Sunucunuza /uyeler şeklinde bir get isteği geldi. Sizin daha önce web route olarak tanımladığınız ve bu istek gelirse çalışmasını istediğiniz controllerınız varsa /uyeler isteği geldiğinde oluşturduğunuz controller dosyası çalışır ve bu controller modellerinizle görüntü dosyalarınız arasında hem kontrolcü hem de bağlayıcı görevi görür.

    localhost/uyeler => UyelerController.php(Modellerin çağırılması ve gerekli işlemler, ardından üyelerin görüntü dosyamıza aktarılması) => View(Uyeler.html veya görüntü, view dosyalarımız)

    Şeklinde basitçe düşünülebilir. Belirttiğim gibi detaylı bir anlatım değil. Öğrenmeniz için benim anlattıklarımı doğru olarak kabul etmemenizi tavsiye ediyorum. Yanlışım olabilir, en sağlıklısı düzgün bir ders içeriğinden öğrenmektir.
  • 13-01-2019, 00:34:55
    #3
    Bi ben tam manasıyla çözemedim mvc yapısını Aslında model view controller olayını anladım ama router kısmı kafamı çok karıştırıyor. O nedenle girmiyorum hiç Ama aslında her kodlayıcı nın kesinlikle bilmesi gereken birşey.
  • 13-01-2019, 00:44:25
    #4
    cleaner80 adlı üyeden alıntı: mesajı görüntüle
    Bi ben tam manasıyla çözemedim mvc yapısını Aslında model view controller olayını anladım ama router kısmı kafamı çok karıştırıyor. O nedenle girmiyorum hiç Ama aslında her kodlayıcı nın kesinlikle bilmesi gereken birşey.
    Basitçe anlatmaya çalıştım. Bir önceki mesajımı düzenledim tekrar kontrol ederseniz.

    Route kısmı gelen isteği controller dosyalarınıza yönlendirmesidir. Örneğin strawz(sallıyorum) isimli bir frameworkün route yapısı aşağıdakine benzer olur.

    "/uyeler" diye bir get isteği geldiğinde UyelerController içindeki uyeleri_listele fonksiyonu çalışsın.

    $routes = [
    "/uyeler" => "UyelerController@uyeleri_listele",
    "/musteriler" => "UyelerController@musterileri_listele",
    ];
    Özetle routes kısmının amacı gelen istekler doğrultusunda hangi controllerın çalışacağını programa tanıtmaktır.


    Bilgi: Bu kısmın kullanışı framework e göre değişiklik gösterir. Laravele göre yazıyorum.
    UyelerController.php
    use Uyeler; // Programa tanıttığımız modelimiz
    public function uyeleri_listele(){
     $uyeler = Uyeler::all();
     return view('uyeler')->with('uyeler', $uyeler); // $uyeler değişkenini 
    uyeler.blade.php yani görüntü dosyama uyeler değişkeniyle gönderdim.
    }
    uyeler.blade.php
    <ul>
    @foreach($uyeler as $uye)
    <li>{{ $uye->kullaniciAdi }}</li>
    @endforeach
    </ul>
    Sonuç olarak ekrana üyeleri listeleyecektir. Biz UyelerController.php dosyamızda modelimizi görüntü dosyamıza(uyeler.blade.php) $uyeler değişkeniyle view fonksiyonuna sokarak görüntü motorunun çalışmasını sağladık view fonksiyonunun bize geri gönderdiği veriyide istek yapan kişiye return kullanarak döndürdük.

    Bu şekilde anlatınca kafanız karışmış olabilir. Derslere baktığınız zaman ve pratik yapmaya başladığınızda herşey yerine oturur.
  • 13-01-2019, 00:55:33
    #5
    Üyeliği durduruldu
    Merhaba;

    MVC sadece bir tasarım desenidir. Siz projelerinizin daha düzenli olabilmesi için kendi model yapılarınızı kurabilir ve kullanabilirsiniz. Yazdığınız kodlara baskalarının rahatlıkla devam edebilmesi için MVC değil, yazdığınız dile ait kodlama standartı gereklidir. (Bknz. PSR-4). İyi bir yazılımcı olmak istiyorsanız;

    - OOP
    - Design Patterns
    - Coding Standards
    - S.O.L.I.D

    konularını bitirmiş olmanız gerekir. OOP haric diğerleri teori üzerine kuruludur. Teoriyi uygulamaya dökersiniz.

    Türkiye'de tutturmuşlar bir MVC gidiyor herkesin ağzında. Model, View, Controller diye akıllara kazıyorlar. Aceleciliğimiz yüzünden bakış açımızı ezbere dayatıp, düşüncemizi daraltıyoruz.

    Mesela Controller katmanında bir methoduna ait datayı getirme, işlemleri yapma, ve geri dönderme yapacaksın. Ancak bu methodun yükü cok fazla. Karısıklığı engellemek için data üzerindeki işlemleri daha net anlaşılır kılmak için Servis katmanı yapman gerekiyor. MVC diye ezberlersen bunu nasıl düşünceksin. Konu uzarda uzar. Yukarıdaki liste işini görüyor arkadaşım. Hatta extra olarak standart queryler yazmak yerine ORM nedir? bunlara da bakabilirsin en son.
  • 13-01-2019, 00:59:20
    #6
    bi esprisi yok spagetti yazabiliyorsan MVC yi haydi haydi yazarsın, frameworke geçiş yapıp bakabilirsin codeigniter falan. fakat klasörler arası geçiş büyük zaman kaybı yaratıyor spagetticiler için.
  • 13-01-2019, 01:16:41
    #7
    Webkanyon adlı üyeden alıntı: mesajı görüntüle
    Merhaba;

    MVC sadece bir tasarım desenidir. Siz projelerinizin daha düzenli olabilmesi için kendi model yapılarınızı kurabilir ve kullanabilirsiniz. Yazdığınız kodlara baskalarının rahatlıkla devam edebilmesi için MVC değil, yazdığınız dile ait kodlama standartı gereklidir. (Bknz. PSR-4). İyi bir yazılımcı olmak istiyorsanız;

    - OOP
    - Design Patterns
    - Coding Standards
    - S.O.L.I.D

    konularını bitirmiş olmanız gerekir. OOP haric diğerleri teori üzerine kuruludur. Teoriyi uygulamaya dökersiniz.

    Türkiye'de tutturmuşlar bir MVC gidiyor herkesin ağzında. Model, View, Controller diye akıllara kazıyorlar. Aceleciliğimiz yüzünden bakış açımızı ezbere dayatıp, düşüncemizi daraltıyoruz.

    Mesela Controller katmanında bir methoduna ait datayı getirme, işlemleri yapma, ve geri dönderme yapacaksın. Ancak bu methodun yükü cok fazla. Karısıklığı engellemek için data üzerindeki işlemleri daha net anlaşılır kılmak için Servis katmanı yapman gerekiyor. MVC diye ezberlersen bunu nasıl düşünceksin. Konu uzarda uzar. Yukarıdaki liste işini görüyor arkadaşım. Hatta extra olarak standart queryler yazmak yerine ORM nedir? bunlara da bakabilirsin en son.

    Çok güzel bilgiler vermişsiniz teşekkürler. Ben de bu bilgilere nereden erişileceğini paylaşayım o halde.
    Youtube'da bilgisayar kavramları diye bir kanal var. Mutlaka burdan yardım alın.
    https://www.youtube.com/channel/UCkk...heXQNIFqUVw0_g
  • 13-01-2019, 12:57:49
    #8
    Üyeliği durduruldu
    Yorum yapan herkese teşekkürler daha da aydınlatmak isteyen ve kaynaklar önerebilecek kişiler varsa sevinirim