Spagetti Kod ve PHP Sorularım
17
●1.269
- 08-03-2019, 11:51:19proje tabaninizi olusturmak icin oncelikle url yapisini ayarlayin / karakteriyle ayrilmis urli parse edip alin ve ona uygun dosyayi cagirarak domain.com/iletisim gibi gelen urlde iletisim routeunu alip bu routea uygun php dosyasini include edebilirsiniz. islerinizi biraz daha kolaylastirmak icin bu include ettiginiz dosya icerisine iletisim sayfasinin view yani html kodlarinin oldugu sayfayi include edersiniz boylelikle php ve html kodlariniz baslangic olarak birbirinden ayrilmis olur, ardindan isinize yarayacak ek fonksiyonlarla kendinize basit.bir uygulama catisi olusturabilirsiniz
- 08-03-2019, 11:55:05Cevaplarınız için çok teşekkür ederim.
Pekiiii, diyelim büyük bir projeye başladım. Ne MVC yapısı ne framework kullanarak kodluyorum. Bütün yapıyı ajax yapıyorum. Her sayfaya özel bir php dosyası oluşturuyorum (iletisim.php, giris.php vb.)
Sürekli kullanılan fonksiyonlar ve kolaylaştırmalar için function.php ile yapıyorum.
Sayfaların post işini AJAX ile yaparak tek bir dosyada bütün sitenin post, form işlerini tutuyorum.
Proje bittiğinde HIZ, PERFORMANS konusunda sıkıntı oluyor mu acaba? Veya problemler ortaya çıkar mı? - 08-03-2019, 12:13:34mesele tum islemleri tek bir sayfada yapmak degil mesele senden sonrakinin kodlarina bakinca arkandan kulaklarini cinlatmamasi. fonksiyon.php yapicam diyorsun ben geldim fonksiyon.php icini actim 50 tane fonksiyon var tektek neden aramaliyim bunun yerine en basit mantikla 1 tanw helper klasoru olustur icine ornegin kullanici.php olustur bu dosya icine sadece kullanici ile ilgili fonksiyom dosyalarini at ben urun ile ilgili bir fonksiyonu arayinca kullanici icine bakmiyim bunun gibi db islemlerinidrle oyle yapemreires adlı üyeden alıntı: mesajı görüntüle
- 08-03-2019, 12:28:28birincisi, php framework dediğiniz şeyde salt php'dir. php sytax'ından öte birşey yok.
ikincisi, framework'un cıkma mantıgı zaten sizin bu bahsettiğiniz düzenli kod yazma, birden fazla kişinin aynı kodu farklı yollardan yazmasını engellemedir.
üçüncüsü, eğer gerçekten düzenli kod yazmak istiyorsanız önce bu bahsettiğiniz frameworkleri inceleyin. nasıl çalışıyor diye. framework dediğiniz şey bir standartlaştırmadır.
Sizde düzenli kod yazarken standartlaştırma yapmalısınız. Mesela randomstring oluşturacaksanız, normalde tek satır bir kod. fakat bunu bir fonksiyona yazıp surekli ordan çağırmak düzendir. Tek satır diye her yerde tekrar tekrar yazmak düzensizliktir. ileride bu random stringleri değiştkrmek istediğinizde tum kodları tek tek tarayıp değiştiremniz gerekir.
Düzenli yazmak istediğinizde işin sonunda kendi frameworkunuzu yapmış olacaksınız yani.
Mesela, kendi duzeninizde yazarsanız, ileride performans sorunu oldugunda, bir satır kod ile tum sitenin alt sayfalarını önbellege alacak bir eklenti yazabilirsiniz kafa yormadan, ugrasmadan. Kara düzen yazarsanız tum sayfalara tek tek ekleme yaparsınız önbellekleme kodunu.
php olarak dusunmeyin, mesela jquery de bi javascript sınıfıdır. daha higher level programming'dir. ilk yazılım assembly ile basladı, low level olarak. insanlar direk makine dili yazdı. sonra dediler bu zor, C dili cıktı. daha anlaşılabilir yazdılar compile ederek assemblye otomatk çevrildi. SOnra c++ , C# derken very high level'e cıktı durum.
Piyasada php bilmiyorum laravel biliyorum diyenler var mesela. Bu very high level programming oluyor. size sunulan kutuphaneyi kullanarak yazılım geliştirme.
Akademik tarafını araştırın, SOLID prensipleri var. Biraz ağır gelebilir ama OOP için önemlidir. Bahsettiğiniz konu üzerinde bir çok tez-doktora çalışması var.
* https://medium.com/@techmostal/solid...i-86a236f6e961
kolay gelsin. - 08-03-2019, 15:25:53Framework hiç kullanmadınız sanırım. Size karışık mı geliyor ? Saf PHP her zaman hamallıktır.emreires adlı üyeden alıntı: mesajı görüntüle
Pure PHP;
$isim = 'ali'; $soyisim = 'veli'; $email = 'aveli@beyaz.net'; $sql = "[B]insert into [/B]bilgiler(isim , soyisim , email) values ('".$isim."','".$soyisim."','".$email."')";Framework;
$data = array('value' => 2, 'value2' => 3); $this->db->insert('tablo', $data);Karar senin Amerika'yı yeniden keşfedecem diyorsan, vaktinde çoksa seçim senin
- 08-03-2019, 16:02:54• page.php oluştur {{ <?php ?> }}
• page.php ile posttan gelen x ismindeki değişkeni dinle {{ switch($_POST['type']) }}
• veritabanından x değeri ile eşleşen veri kümesini sayfa.php'nde yayınla {{ sql = "select * from pages where id = ?" }}
• .htaccess dosyası ile page.php?id=about kısmını /about şeklinde yönlendirebilirsin
• jquery ajax ile sayfa yenilemeden page.php'ye istek yollayarak dönen cevabıda sayfada göstererek yaparsın, (optimizasyon gerekli ajax ile sadece saf json verisi dönsün)
Olay bu kadar basit! - 08-03-2019, 16:50:16Temiz kod yazmak için MVC mimarisi kullanmak zorundasın , bunu ister piyasaki frameworkler ile yap ister kendin oluşturmaya çalış.
Framework kullanmak istemiyor iseniz yine oturup işinizi görecek class ve fonksiyonları yazmanız gerekiyor ki anlaşılabilir sade bir kod yazabilin.
Örneğin veritabanı işlemleri için yapılacak şeyler bellidir , insert , update , delete ve select , bunlar için her işlem yapılacak sayfada oturup kod yazmanıza gerek yok , bir tane class hazırlarsınız sonra projenize bu sınıfı dahil edip kolayca kullanırsınız.
Dediğiniz bir noktada " ?sayfa=iletisim ise iletişim.php " bölümü olarak yine frameworklerdeki Route yapısına benzer kendinize göre tanımlayarak işlem yaparsanız bir çok if - else kod karmaşasından kurtulursunuz , ve direk sef url yapısına sahip olursunuz.
Çok düzenli yapıları, framework kullanmadan inşa ediyorlar.