Ruby ile web sayfalarını yapmanın bir PHPish yolu var mı?

3 Cevap php

Ben Ruby PHP gibi olabildiğince aynı şekilde web sayfalarını geliştirmek, böylece bir çerçeve ya da bir şey orada var. Gibi bir şey

<html><head></head><body>
<?ruby
  puts '<p> Hello there!</p>'
?>
</body></html>

Ben web sayfalarında Ruby kullanarak için görüyorum tek şey PHP nasıl tamamen farklı büyük bir kompleks çerçeveler olduğunu. Yani, emin tüm ince ve 3 katmanlı modeli ile züppe ve böyle ama sizin sadece kurulum için, bir web sayfası (PHP önemsiz olan) yapılan bir kaç basit şeyler isteyen zaman böyle büyük bir çerçeve sadece doğru görünmüyor. Sadece gerçekten 1 Ruby yapılan sayfa ve düz HTML olmak kalanı gibi istiyorum özellikle.

3 Cevap

İki kelime: Sinatra ve ERB

(Hafif siteler için, en azından).

Sinatra basit bir HTTP sunucusu, ERB PHP çiftleşmiş benzer davranan bir şablon sistemi.

PHP için varsayılan davranış web sunucusu çağrıları php-cgi <path/to/php-script> ya da benzer bir şey, çevre değişkenleri oldukça çok geçen demektir, CGI komut çalıştırmak. Ruby ile aynı yapmak için, kurulum işlemek için bir komut dosyası gerekir. Rb dosyaları. Bu çılgınca web sunucusuna bağlı olarak değişir, ancak Apache 2.2 kullanıyorsanız, httpd.conf veya htaccess dosyasına koymak.:

Action ruby-cgi /path/to/ruby-cgi
AddHandler ruby-cgi .rb
# You might want to add this too:
DirectoryIndex index.rb index.html

Sen yakut çalıştırılabilir (run which ruby yol almak için) yolunu belirtebilirsiniz, ya ilk parametre olarak bir dosya kabul başka bir script. Eğer yakut yürütülebilir kullanırsanız, sihirli bir şey olur ve kendinizi derleme bazı ERB eklemeden dosyasına erb ekleyemezsiniz. Ancak, birkaç şey yok benim ruby-cgi komut dosyası, kullanabilirsiniz:

  • Birincisi, o dosyayı alır ve ERB olarak yorumlar, bu (bir örnek için aşağıya bakınız) sözdizimi daha PHP gibi görünmesi.
  • İkincisi, global değişken içine CGI nesnesi başlatır $CGI. Bu nasıl kullanılacağı ile ilgili bir örnek için aşağıya bakın.

Bu ruby-cgi "büyü" kullanarak nasıl basit bir örnek script:

<% header "Content-Type" => "text/html" %>
<html>
  <head>
    <title><%= $CGI['title'] %>
  </head>
  <body>
    <h1><%= $CGI['title'] %>
  </body>
</html>

Diyelim ki adı ile webroot içine bu koymak diyelim example.rb. Eğer benzer bir URL ile bu erişmek Eğer http://example.com/example.rb?title=Hello%20world "Merhaba dünya" başlığını ayarlamak gerekir, ve bir

göstermesi gerekir İçinde "Merhaba dünya" ile.

Eğer komut ile herhangi bir hata bulursanız, özünü çatal ve güncelleştirmek için çekinmeyin.

Gördün mü Nanoc? Bu bir şablon motoru ile statik sayfalar çıkışları çok basit yakut derleyici. Ihtiyaçlarınız için çok basit olabilir ama bazı zamanlar kullanışlı olabilir.