|
|
#1 (permalink) |
|
PHP site algoritması
Aslında danışmak istediğim konu sadece PHP ile ilgili değil fakat PHP ile kodlayacağım için böyle bir başlık kullandım. Çok profesyonel olmasa da PHP bilgim var fakat bir siteyi siz nasıl kodluyorsunuz merak ettim. Daha önce bir siteyi anlatacağım mantıkla kodlamıştım. Sitede her şey index.PHP üzerinden yürüyordu. Üst, alt ve yan alanları include ile çektim. İçerik bölümünde ise fonksiyon.PHP diye bir sayfayı çekiyordum. Bu sayfada ise switch-case yapısı vardı. Switch'de kullandığım değişken ise sayfa idi. Yani index.PHP?sayfa=iletisim olduğunda iletişim sayfasında olması gerekenler geliyordu. Tabi fonksiyonlar sayfasında da include kullandım. Genel mantık bu şekildeydi. Eksik kalan bir bölüm varsa tekrar açıklayabilirim. Peki siz nasıl bir sistemle kodluyorsunuz? Eksileri-artıları nedir tartışalım istedim. Not: Benim yeni yapacağım sitede herbir kullanıcıya ait sayfa olacak. Bunun algoritma üzerinde bir etkisi olur mu bilmiyorum ama belirteyim dedim. Faydalı bir konu olacağına eminim. Arama yaptırdım fakat böyle bir konu bulamadım. |
|
|
|
|
|
|
#2 (permalink) |
|
Üyelik Tarihi: 06.07.2006
Yer: İstanbul
Yaş: 22
Mesaj: 216
|
Re: PHP site algoritması
case'leri vakti zamaninda if...else'ler yokken icat etmisler. Hala kullanmanin pek bi mantigi var mi bilmiyorum...
![]() Ilk olarak case de kullansak if...else de kullansak bu isin olmazsa olmazi bence fonksiyonlardir. Yapilacak isi fonksiyonlara bolerek ve gerekli yerlerde return ile geri dondurerek ilerlemek daima esastir. Bir sonraki asamada ise class'lar giriyor. Kullanici sistemi dedin; bir kullanicinin tutulmasi gereken bilgileri tablodan bir defa alindiktan sonra bir daha update disinda o tabloya donmek pek de kullanisli olmasa gerek. Ha bir de her bilgiyi tek tek fonksiyonlar arasinda gecirmek daha bi zor. Haliyle class yaratip hepsini iceri almak, daha sonra bu objeyi aktarmak daha kullanisli. Tabi sistemler biraz daha ilerledikce sadece class icinde uygulanacak fonksiyonlar da cabasi. Simdi hal boyleyken siz bir sayfaya kullanici sistemi eklemek istiyorsaniz, login fonksiyonunu cagirirsiniz, cookie var mi diye kontrol eder. Varsa cikis linki return eder, yoksa login_form'u return eder. Istemezseniz de fonksiyonu cagirmazsiniz kalkmis olur. Maksat ortalik derli toplu olsun. Yoksa calistigi surece her yol mubahtir. |
|
|
|
|
|
#6 (permalink) |
|
Üyelik Tarihi: 13.02.2001
Yer: istanbul
Yaş: 36
Mesaj: 134
|
Re: PHP site algoritması
BYK'nin dediği "derli toplu bir sistem" konusuna bence çok kafa yormalı. Örneğin CodeIgniter gerçekten harika hazır bir sistem. Kullanıcı rehberi sürekli açık olacak şekilde süratle ESNEK uygulamalar geliştirilebilir. Gerçekten de derli toplu bir yapı sağlanmış olur. Kütüphaneleri oluşturan PHP dosyalarını inceleyin. Session güvenliğini, db erişim performansını, template işleme gibi işleri yapan daha iyi kodlar yazabilir miyim? Yazmama gerek var mı? gibi sorular sormak lazım. Tabii bu kod yazma dediğim kütüphane oluşturmak anlamındadır. Uygulamalarımızı kaynak kodları gizlenemeyen platformlarda yapıyoruz. Yani kendi yazdığımız kodların herhangi bir avantajı zaten yok. Ancak şunu belirtmekte fayda var; Hazır MVC sistemleri tam anlamıyla kullanabilen biri zaten belirli bir seviyeye gelmiş demektir.
Kendi yazdığınız PHP kodu da, Zend Framwork veya CodeIgniter gibi hazır sistemleri kullansanız da teorik olarak yazdığınız kod en kötü ihtimalle 0.05sn gibi bir sürede işlenecektir. Bu kısacık süre içinde veritabanına 10000 kayıt ekleme kodu da çalışır. Eh artık ondan sonra MySQL ne yapar bilinmez. If veya Select switch gibi yöntemleri tartışmak yersizdir. Düşük seviyeli olmayan yani işletim sistemine uzak katmanlardaki PHP ASP gibi ortamlarda performans; doğru senaryo algoritmalarıyla sağlanabilir. Select mi If mi kullanmalıyım yerine; "1 çocuğun 1 ailesi olabilir ancak 1 ailenin 1'den fazla çocuğu olabilir" gibi saptamaları dijital ortama doğru bir şekilde aktarmayı endişe edinmelidir. Doğru uygulamalar geliştirmek için ilk konumuz ilişkili veritabanı tasarlamayı öğrenmek olmalıdır. Ondan sonra projenin kullanım yoğunluğuna göre; sayfa ve veritabanı kaşe işlemleri, HTML optimize CSS teknikleri gibi konular ele alınabilir.
__________________
sevgiSaygi = true; |
|
|
|
|
|
#7 (permalink) |
|
Re: PHP site algoritması
Ben de konuyu framework'lere taşımayı düşünüyordum. Giriş yapmanız iyi olmuş. Fakat frameworklerin kullanımı nasıldır? Zor mudur, kolay mıdır? Henüz yolun başında olan biri için ideal midir?
Ayrıca PHP için hangi framework daha kullanışlı konusu da burada tartışılabilir gibi. Zend'i övüyorlar genelde ama CodeIgniter de var. Tabi bunlardan başka framework'ler de var. Bunların arasından seçimi neye göre yapmalıyız? |
|
|
|
|
|
|
#8 (permalink) |
|
Üyelik Tarihi: 02.08.2001
Yer: istanbul
Yaş: 38
Mesaj: 1,542
|
Re: PHP site algoritması
|
|
|
|
|
|
#10 (permalink) |
|
Üyelik Tarihi: 19.10.2007
Yer: Ankara
Yaş: 23
Mesaj: 9
|
Re: PHP site algoritması
Öncelikle, yaptığın işin boyutu çok önemli. Eğer söylediğin gibi bir sistem kullanıyorsan (index.PHP'den action tanımlama), gözüme PHP'yi sanki kendi başına bir template engine gibi kullanıyorsun gibi geldi.
Elindeki projenin tam olarak ne olduğunu bilmediğimden, şimdiye kadar sarfettiğin efora göre çok kabaca tavsiyeler verebilirim; İster programlarken kurgula -ki çoğu yazılım geliştirici bunu sağlıksız bulur: kaç adım ileri düşünebildiğine göre değişen bir durum bu- ister makale okurken, kafanda biçimlendir ve kafandakileri notdefterine - veya open workbench gibi bir uygulamaya- dök; genelde programlamanın en az %40'ı planlamada olduğunu söylemek yanlış olmaz. "Haydi hazır framework'e geçelim, gerek yok ona buna herşeyi yapmış adamlar" dememeni öneririm, çünkü frameworklerin yetenekleri her ne kadar esnek, extend edilebilse de, genişleteceksen de o öntanımlara uymak ve yetersiz kaldıkları noktada, seçtiğin framework'unu extend ederken PHP'yi yutmuş olmak zorundasın. Üstelik bunu sıkıcı bir şekilde, framework'un kurallarınca yapmalısın. Yapabileceklerin her ne kadar esnek görünse de aslında bağımlı hale geliyorsun yani. Bu yüzden herhangi bir framework (MVC demiyorum) başlamak için pek iyi bir yer değil. Öte yandan, MVC ilgini çektiyse, bir tane yazabilirsin, göründüğü kadar zor birşey değil bu. MVC nedir, framework ne sağlar ne sağlamaz taraflı bir dille yazılmış bu makaleyi okumanı ayrıyetten öneririm: http://toys.lerdorf.com/archives/38-...framework.html Arkadaşların da dediği gibi, elindeki yazılım 10.000+ satır sözkonusuysa ya elinde şiştikçe şişmiş, planlamasını oturmamış bir yazılımın vardır, ya da design pattern sahibi bir projen vardır. Bu noktada oturup bu yazılım nasıl daha iyi yeniden yazılır düşünülmelidir. Bir süre mantık hatalarınla bocalayıp, çözümler üretip ve bulup sonra CI, cakePHP, Zend veya Symfony gibi MVC frameworkleri düşünmeni öneririm. MVC destekli bir framework sadece *belki* acaba nasıl bir sistemli kod yazarımın cevabı olabilir. Şu noktada frameworklere dalarsan, SQL, JavaScript gibi bileşenlerin gerçek yeteneklerini, dolayısıyla sorunlarına getirebileceğin daha doğru çözümleri bilmeden iş yapmış olursun. Kafanda projeler işlediği ve genişlediği sürece bir yerde tıkanacağının da kesin olduğunu söyleyebilirim. Şu anda birşey yapmaya çalışırken, her ne yapıyorsan o konudaki makaleleri okumak, ne var yeni takip etmek, denemek, başarmak, yaptığın adımlarda neyin neye neden olduğunu iyice kavramak daha sonra, iyileştirme (performans), kötü adam gibi düşünüp işleyiş esaslarına bakma, basit güvenlik makalelerini inceleme (SQL injection, X scripting, mail injection), tekrar koda dönüp bakma safhalarından geçtiğinde şimdiki sorunun cevabını kendinde bulmanı sağlayacaktır. Bu arada bi "hangi MVC framework", "kendi design pattern'im olmalı, karıştırır bu işleri" ya da "bi Smarty desteğiyle bide bir iki library ile olur bu iş" kararını zaten verebilecek konuma gelirsin. Ayrıca 5 tane dizilmis if else 'e göre, switch case'in hem performans hem kod okunurluğu açısından artısı olduğu gibi zamanla beyne yerlesen, elini if else e goturmeden iki kere dusundurecek aliskanliklari da bonus olarak edinirsin zaten.
__________________
GWG, Gökçe'nin Web Güncesi |
|
|
|
| Sponsorlu Bağlantılar | |
|
Zoque.Forum
Reklam
|
|
Zoque'a hoşgeldiniz!