Benim CSS stil değişkenleri oluşturmak için PHP kullanmanın sakıncaları nelerdir?

3 Cevap php

CSS Bir önemli dezavantajı bir değişkenlerini kullanamazsınız olmasıdır. Örneğin, ithal CSS yerini kontrol etmek için değişkenleri kullanmak istiyorum, ve bir tasarım art arda kullanılan renkler için değişkenleri oluşturmak için harika olurdu.

Bir yaklaşım CSS stil için bir PHP dosyası kullanmaktır. Diğer bir deyişle, bir "style.php" yaratmak ...

<?php header("Content-type: text/css"); ?>

... O dosyanın üst ve en kullanarak ona bağlantı ...

<link href="style.php" rel="stylesheet" type="text/css" />

... Bu stilleri kullanan herhangi bir dosya.

Peki faturası nedir? Ben performans olabileceğini düşünüyorum - Firefox / Firebug birkaç hızlı deneyler yaptı ve bir beklediğiniz gibi, CSS stil önbelleğe, ancak PHP stil değildir. Yani biz bir ek GET bedelini ödüyoruz.

Diğer can sıkıcı bir şey TextMate bir. Php dosyasında CSS düzgün vurgulamak sözdizimi olmamasıdır.

Are there other drawbacks? Have you used this approach, and if so, would you recommend it?

3 Cevap

Performans hemen hemen öyle. Bu ancak bunu önbelleğe yalnızca, iyi bir fikirdir. Oldukça-lütfen önbelleklenmesi müşteri sormak tarayıcı başlıklarını gönderebilir, ancak performans bir sorun olup olmadığını, siz normal olarak hizmet vanilya CSS dosyaları için PHP-etkin stil sayfaları derlemek hangi aracılığıyla bir sistem geliştirerek yarar olabilir.

Eğer olsa, kendi derleme sistemini el-rulo rahatsız gidiyoruz, bunun yerine, SASS içine bakmak isteyebilirsiniz.

Hala dinamik olarak oluşturulan CSS önbelleğe tarayıcı talimat uygun HTTP başlıklarını ayarlamak gerekir. Sen konu hakkında daha fazla okuma için aşağıdaki Google Code makaleye kontrol dışarı ilginizi çekebilir:

Ayrıca komut statik bir CSS dosyası üreten düşünün, ve sonra web belgeden o içerebilir. Bu, onları değiştirdiğinizde CSS dosyaları "derlemek" zorunda pahasına, gerçek zamanlı preprocessing ve buna ilişkin herhangi bir performans kaygıları ortadan kaldırır. Ancak zaten minifying CSS veya JavaScript iseniz, sadece inşa süreci bu fazladan adımı ekleyebilirsiniz.

Kod vurgulama gelince, yerine kodlanmış sabitler onlarla değişkenler normal CSS dosyalarını kullanmak isteyebilirsiniz. Daha sonra php önişlemci CSS dosyasını yüklemek ve gerçek değerler için değişkenler yerine yapabilirsiniz.

Dezavantajı dosya önbelleğe (gibi işaret) yanı sıra sunucu HER istek için CSS dosyası hesaplamak gerektiği gerçeği olmasıdır.

Sadece okur ve dosyayı döker, ancak PHP script için ek yükü eklemek olabilir, her sayfa istek için çalıştırmak zorunda olacak gibi statik dosyası yüklenirken oldukça fazla sunucu için bir yüktür.

Muhtemelen bellek veya Memcache falan CSS önbelleğe olabilir, ama bu hala sadece statik bir dosya kullanılarak bir etkin olmayacaktır.

Neden statik bir dosyaya CSS çoğunluğu tanımlamak değil, ve sonra sadece değiştirmek belirli stillerini geçersiz?