• 16-02-2015, 19:15:07
    #10
    @Fys, siz daha bu işlerin çok çok başındasınız, bu belli. Sorduğunuz soruların cevapları yok. Bunlar ancak bir uygulama geliştirilerek cevaplanabilir ya da görülebilir. Zaman içerisinde uygulama geliştiriken bunları otomatik olarak öğreneceksiniz zaten. Bu tip şeyler oldukça soyut kavramlar oldukları için ilk bakışta ezoterik gelebilir insana ama o kadar da korkulacak bir durum değil.

    Bu işlerde ezber bir işe yaramaz. Algoritma kavramını çözmelisiniz. Bunu çözdükten sonra dil öğrenme safhasına geçin. O zaman çok daha kolay ilerlersiniz. Basit bir algoritma kitabı alıp okusanız bile başlangıç için yeterlidir.

    Php mantığı diye birşey yok. Kim uydurdu neden uydurdu onu da anlamış değilim. Bu işlerin temeli algoritma öğrenmektir. Aksi görüş bildiren bu işi bilmiyordur.
  • 16-02-2015, 20:57:54
    #11
    peki eğitici video var mı algoritmayla alakalı
  • 17-02-2015, 09:33:43
    #12
    Bir internet sitesi yapabilmeniz için php ya da html öğrenmeniz şart değil; pek çok popüler web sitesi python, C, ruby on rails, java gibi dillerde kodlanmıştır (google, twitter, youtube, vs vs vs).

    Aslında tüm olayın sırrı da bu, bir işi yapmanın tek bir yolu yok, bir sürü yolu var; en uygun şekilde yapabilmek sizin olaya ne kadar hakim olduğunuzun ölçütüdür.

    Arkadaşın algoritmadan bahsettiği; temel programlama mantığı. Bir işi nasıl yaparsınız, ilgili kontrolleri nasıl sağlarsınız? Örneğin; nesne tabanlı programlama yapıyorsunuz, siteadresi .com/profil şeklinde bir link yapısıyla üyelerin profillerini göstermek istiyorsunuz. Bu link yapısıyla bu sayfayı nasıl çağırabileceğinizi biliyorsanız temel programlama mantığına az ya da çok bir şekilde hakimsiniz demektir. Ne kadar kısa yoldan basitçe yapabiliyorsanız o kadar iyidir.

    Bence hiç PHP gibi bir dil ile uğraşmayın, uğraşacaksanız da direk OOP (object oriented programming - nesne yönelimli programlama) seviyesine geçin; bir kere nesne tabanlı yazılıma alışırsanız çok zor gelecektir. Ya da PHP yerine python gibi çok güzel ve geniş kütüphaneleri olan diller var onları öğrenebilirsiniz. OOP nedir?

    Frameworklere gelecek olursak; programlama dillerinde bazı tekrarlanan işleri yapmak için fonksiyonlar yazarız. Bir çok fonksiyon kullanmamız gereken yerlerde ise sınıflar yani class yapısı devreye girer. Sadece birden çok fonksiyon kullanmanın yanı sıra class yapısı sade bir kodlama yapısı da sunar. OOP de class yapısı kullanır. Birden fazla class yapısını bir arada kullanmamıza olanak veren ve pek çok hazır class barındıran sistemlere de framework denir. Bu frameworklerden en popülerleri CodeIgniter, Laravel, Symfony ve CakePHP olarak sıralanabilir. Ben pek çok projemde codeigniter kullanıyorum, bazı arkadaşlar eleştirecek olsa da sadece yapısı sayesinde öğrenmeyi çok kolaylaştıracaktır, framework öğrenmek istersen denemeni öneririm.


    Frameworkler genelde MVC tasarım şablonu kullanır. MVC Model-View-Controller kelimelerinin baş harfleridir. Program işleyiş olarak 3 ana gruba ayrılır. View, kullanıcı tarafından görüntülenen şablondur. Biz genelde view dosyalarında HTML kullanırız. Model, tüm hesaplamaları yapan kısımdır. Controller ise veri trafiğini sağlayan kısımdır. Yani ilk olarak controller adındaki kontrolcü çalışır, verileri alır ve işlemesi için model dosyasına gönderir, model dosyasından gelen cevabı tekrar kontrolcü alır ve view dosyasına göndererek kullanıcıya sunar. Aşağıda örnek vereceğim daha iyi anlayabilirsin.

    Örneğin bir kullanıcı siteadresi .com/profil linkine girdi. Bu link ile framework otomatik olarak Profil adlı controller dosyasını çalıştırır. Profil adlı controller dosyası ise öncelikle Profil adlı model dosyasını çağırır. Model dosyası açılırken oturum (session) kontrolü yapar ve kullanıcı giriş yapmadıysa false değerini, kullanıcı giriş yaptıysa kullanıcı bilgilerini değer olarak geri döndürür. (Bazı arkadaşlar oturum kontrollerini controller dosyası içinde yapıyorlar, bu MVC yapısına uygun değildir ve framework kullanma amacını da saptırmış olan bir durumdur.) Sonra controller dosyası model dosyasından gelen veriyi kontrol eder ve ona göre gereken şablonu çağırarak kullanıcıya gösterir.

    Mümkün olduğunca kafanı karıştırmadan anlatmaya çalıştım umarım yardımcı olabilmişimdir. Takıldığın yerde özelden de mail ile de ulaşabilirsin. Başarılar dilerim


    Düzenleme Notu: Bu kadar çok programlama dili ve framework neden var diye düşünüyor olabilirsin. Bunun cevabı çok basit aslında, arayışlar. Bir dilin yeterli olmadığı noktada bir başkası ortaya çıkmış. Bir işlevi daha kolay ve daha fonksiyonel yapmaya çalışmaktan başka bir şey değil aslında. Frameworkler de benzer şekillerde oluşuyor, tümünün amacı kodlamacıya kolaylık sağlamak, bazı çok kullanılan işlemleri (kullanıcı, oturum, sepet,vs vs) içinde hazır bulundurarak kullanımasunmak, olmayan işlemleri kolayca hazırlayabilmek (bir yerden veri çekerek yazmak), 3-5 sene sonra bir sorun olduğunda binlerce satır kodu analiz etmek yerine sorunu kolayca bulabilmek, yine benzer şekilde başka birileri koda baktığında da kodlarınızı kolayca anlamasını sağlamak.
  • 17-02-2015, 23:44:35
    #13
    mesajınız açıklamanız için minnettarım özelden de mesaj attım efendim
  • 18-02-2015, 20:46:29
    #14
    ylv
    Üyeliği durduruldu
    Fys adlı üyeden alıntı: mesajı görüntüle
    merhaba arkadaşlar bir sorum olacak php konuları başlangıç aşamasındayım konuları gerek yutubdan gerekse kitaptan çalışıyorum anlamadığım bir konu frameworkler türkçe olarak tam ne ifade ediyor herhangi bir ajansa ya da bir şirkete bu frameworkleri öğrenmeden girme şansım yok mu sadece bütün konuları bitirip script yapabilme kıvamına gelsem iş bulamaz mıyım frameworkleri görünce gözüm korktu açıkcası hem php bitirip sonra üstüne de framework çalışacak olmam tırstırdı sizler ne düşünüyorsunuz bu konu hakkında ?
    öğrenmeniz gereken nesne yönelimli programlama ama php ile oop öğrenilmez. oop c++ c# java gibi dillerle öğrenilir ve tam anlamıyla uygulanır. daha sonra attan inip eşeğe (php) binebilirsiniz. php oop konusunda yetersizdir. tavsiyem php'yi bir kenara bırakıp önce c dilini temel olarak öğrenin, algoritmanı geliştirmek için basit uygulamaları c dili yapın, daha sonra c++ ile nesne yönelimli programlamayı öğrenin. yeni başladığın için herşeyin temelinin algoritma olduğunu belirtiyim. bilgisayar müh. birinci sınıf ilk dönem ana dersi algoritmadır olmadan olmaz!
  • 18-02-2015, 23:23:16
    #15
    Php pişmanlıktır. Bence yolun başındayken bırak, php öğrenirsin, sonra iş aramaya başlarsın neredeyse tüm php iş ilanlarında "framework deneyimi olanlar" diye yazarlar. Bir framework öğrenirsin, elin amerikalısı garajında bir framework yapar, piyasaya bir salar bütün şirketler onu kullanmaya başlar, sonra onu kullanmayı bilmiyorsan, iş bulmakta zorlanırsın. Bu örnek çok ütopya görünebilir dolaylı olarak iş bu şekilde yürüyor.

    Misal, framework'lerin en basit ve yalin olanı codeigniter'dır. Kullanımı ve öğrenmesi çok basitdir. Ama symfony,zend,yii gibi frameworkler, bambaşka mimaridedirler, php değilde başka bir dille programlama yapıyormuşsun gibidir. Kurulumu bile bir ton iştir. Paketler, bundle'lar, library'ler vs vs vs. ve işin garip olan tarafı, zend1 ile zend2 arasında bile dünya kadar fark var, tıpkı symfony1 ile 2 arasında olduğu gibi.

    Neyse tam bunlarıda öğrendim derken, phalcon diye bir framework çıkar, c ile yazılmış php frameworkü. Neymiş efendim, tekrar tekrar derlenmeye gerek kalmadığı için acayip performans sergiliyormuş. Doğru veya yanlış durumunu tartışmıyorum. Benim dikkatini çekmek istediğim, yol yakınken bırak şu hammal programlama dilini. ASP.NET öğren, OOP'u sapına kadar öğrenirsin ve microsoft'un ürettiği MVC'yi bir kere öğrenirsin olur biter. 2-3 yılda bir yapı değişir sende değişiklikleri öğrenmeye çabalarsın. ayrıca en iyi firmalarda en iyi maaşlara çalışma şansı yakalarsın.

    Bu arada, framework demek, Çatı demek, yani kod çatısı.
    Framework = MVC,
    MVC = Model View Controller

    Her yeni başladığın işe mysql_connect ile başlamana gerek kalmaz, form validationları ile uğraşmazsın, ve en güzeli ise url redirect leri ile uğraşmazsın. Model yani Db operasyonlarını yaptığın kodlarının, view yani html kodlarının, controller yani sayfalarının, fonksiyonlarının sınıflarının durduğu yerler hep sabittir, kod karışıklığı olmaz.


    Umarım Faydalı olmuştur.