Why mod_python is oop but mod_php is not ?
Example :We go to www.example.com/dir1/dir2
if you use mod_python apache opens www/dir1.py and calls dir2 method but if you use php module apache opens www/dir1/dir2/index.php
En mod_php vs mod_python hakkında konuşalım.
Python dili özellikle web sayfaları hizmet için tasarlanmıştır DEĞİLDİR yana, mod_python bazı ek iş yapmak zorundadır.
PHP dili özellikle web sayfaları hizmet için tasarlanmış olduğundan, mod_php sadece adında PHP modülü başlar.
(Mod_fastcgi veya mod_wsgi farklı) mod_python durumunda, mod_python tasarımcı Python çağırmak için en iyi yolu, bir modülünde tanımlanmış bir nesnenin bir yöntemini çağırmak olduğuna karar verdi. Umarım, o nesnenin bu yöntem Stdout'a başlıkları ve web sayfası içeriği yazacağım.
Mod_wsgi durumunda, tasarımcı Python çağırmak için en iyi yolu, bir modülde bir işlevi (veya callable nesne) aramak olduğuna karar verdi. Umarım o işlev başlığı oluşturmak için verilen nesne kullanımı ve web sayfası içeriği ile bir liste dizeleri dönecektir.
PHP modülleri web sayfaları hizmet etmek için tasarlanmıştır çünkü mod_php durumunda, sadece modülünü çağırmak. Program çalışır ve bu çalışma sonucu içeriğinin bir sayfasıdır; genellikle HTML.
Bir şekilde çalışır mod_php nedeni, mod_python başka işleri ve mod_wsgi farklı çünkü üçüncü bir yol olduğunu çalışır. Bir web sayfası üretmek için yol farklı tanımları ile farklı kişiler tarafından yazılmış.
Php sayfası nesne yönelimli olabilir. Bir mod_wsgi fonksiyon çağrılabilir nesnesi olabilir veya bir simplef merhem olabilir. Bu tasarım seçimlerdir.
Bir sınıf için mod_python gereksinimi mod_python tasarımcısı tarafından yapılan bir tasarım seçimdir.
Neden "neden" yararlı değildir. Birisi bu şekilde tasarlamaya karar verdi çünkü neden "neden" dir.
Mod_python bir "RPC gibi" mekanizması içine URL'yi soyutlayarak Çünkü. PHP aynı elde edebilirsiniz. Ben her zaman elle yaptım, ama bunun için önceden paketlenmiş armut modülleri vardır eminim.
Mod_python davranış zorla "iyi" değildir unutmayın. Her şey size uygulamasına vermek istediğiniz tasarımı türüne tutarlarının ve müşterilerine nasıl davranacağını. Bildiğim kadarıyla ben gördüğünüz gibi, mod_python yaklaşımı her URL için bir URL ağaca modül yapısını haritalama gibi bir işleve sahip olduğunu varsayar. Eğer (mod_python) kullanıyorsanız, teknoloji ve uygulama URL düzeni arasında sıkı bir ilişki vardır çünkü bu, teknik olarak özellikle güzel bir yaklaşım değildir.
Sebebe why, hiçbir neden 'gidecekseniz. Bazı insanlar başka benzeri bir yiyecek, ve diğer bazı seviyorum. Tasarımı, bazı durumlarda, tat ve artistik seçenek, teknik bir kısıtlama sadece bir konudur.
Ben HTTP nasıl çalıştığı konusunda bazı yanlış olduğunu düşünüyorum. Http standardında hiçbir şey bir kaynak olarak belli bir dosya olması gerekir. Belirli bir yolu, bu yol da derleyici tarafından yorumlanır sunucu, disk üzerinde bir php dosyasına çevrilmiş olduğunu nasıl mod_php çalışır, sadece yoludur.
* Mod_python * Öte yandan modülü çok daha genel, bu size bazı python nesneye bir çağrı için herhangi bir kaynak haritasına sağlar. Bu sadece daha kolay başlamak için, bazı yapılandırmalar kutudan kullanılabilir olur. Çoğu durumda url gönderme framework tarafından yönetilen ve nasıl çalıştığını çerçeve uygulayıcı kalmıştır.
Çünkü * mod_python jenerik doğası * de * mod_php * modülünde bulunmayan bazı apache özelliklere erişmek mümkün modül, örneğin eğer benim python webapp için geçerli değil sadece kendi kimlik işleyicisi, yazabilir , ama aynı zamanda kendi apache diğer uygulamalar için.
in PHP you can program your web pages the top-to-bottom scripts, procedural programming and function calls, OOP. this is the main reason why PHP was first created, and how it evolved. mod_php is just a module for web servers to utilize PHP as a preprocessor. so it just passes HTTP information and the PHP script to PHP interpreter. the PHP way of web page creation is do what you want; write a top-to-bottom script, define functions in different files and include those and call functions, or write your app in OOP, you can also use many full-featured frameworks today to make sure your application design and structure meets today best practices and design patterns.
Python için yeni ve python ile web programlama aşina değilim. ama çok biliyorum, python web programlama kolaylaştırmak için oluşturulan değildi. Bu genel amaçlı bir programlama dili olması amaçlanmıştır, bu nedenle python basit top-to-alt komut yazma ve (ben böyle bir şey mümkün olup olmadığından emin değilim) web sayfası tepkiler olarak onları çalıştırmak mümkün olabilir ancak, o oldu değil pythonic yol, ve bu yüzden mod_python geliştiriciler pythonic şekilde olması için Python web programlama istediğini düşünüyorum.