C # PHP hızlı ayrıştırma

2 Cevap

Ben C # PHP dosyalarını ayrıştırma için bir gereklilik var. Biz aslında PHP dosyalarını yüklemek için başka bir ülkede devs bazı gerektirir ve bir kez yüklenen biz php dosyalarını denetleyin ve tüm yöntemleri ve sınıfları / işlevleri vb bir listesini almak gerekiyor

Ben bir regex kullanarak düşündüm ama bir işlev vb bir sınıfa ait ise egzersiz yapamam, o yüzden gidecekseniz zaten 'orada' bir şey olduğunu PHP dosyaları ayrıştırmak ve işlevlerini tükürmek eğer ben merak ediyorum (ben çalışıyorum ) tam bir darbe AST uygulanmasını yazılmasını önlemek.

Herkes herhangi bir fikir var mı? Ben Coco / R baktım ama ben bir PHP dilbilgisi dosyası bulamadı. Ben. NET 2.0 ve C # kullanıyorum.

2 Cevap

Neden C # bunu? PHP bunu yapmak saçmadır. token_get_all() işlevini kullanın ve kesin bir sonlu durum makinesi yazarak sınıfları ve yöntemleri listesini belirlemek için kullanabileceğiniz lexemelerin bir akımına bir PHP dosyası kıracak.

Ne yaparsan yap denemek ve düzenli ifadeler ile bunu yapmayın. Bu son derece sıkıcı ve hata eğilimli olacaktır.

Edit: Bu iş için üç temel seçenek vardır:

  1. PHP bunu. Bu hızlı (geliştirilmesi) ve basit bir seçenek olacaktır;
  2. Bunu yapmak ya da bir C # program tarafından yorumlanabilir belirteçleri bir dizi oluşturmak ya da bir komut satırı PHP komut dosyasını çalıştırın. Bu kolay bir sonraki olduğunu;
  3. Kullan Phalanger,. Net çerçevesinin PHP bir liman. . Hala tüm Net kod beri bu yönetime daha lezzetli olabilir; veya
  4. Kullan Quercus, Java VM PHP bir liman.

Başka bir şey bir PHP çözümleyici (bir sürü iş) yazarken veya güvenilmez bir destek kabus olacak gerçekten lapa lapa düzenli ifadeler kullanarak da içerecektir.

PHP sözde "güvenlik açıkları" konusunda endişe etmesine çeşitli sorunları vardır:

  1. Herhangi bir çerçeve veya teknoloji yığını güvenlik açıkları olabilir. Lütfen sistem yöneticisi sadece Java üzerinden protesto altında. Net etkili izin verdiği aslında sadece irrasyonel önyargı gösterir. Ben uzun süredir Java geliştiricisi olarak söylüyorum: Java, Net ve PHP tüm güvenlik kusurları olabilir;.
  2. Temelde sıfıra güvenlik açıkları sorununu azaltır herhangi bir HTTP istekleri, hizmet etmeyen böylece PHP'nin komut satırından çalıştırabilirsiniz;
  3. Eğer (kutusu erişimi olan birinden) iç güvenlik tehditleri konusunda endişeli iseniz sadece yalnızca program içeri bir grup tarafından çalıştırılabilir PHP CLI yürütülebilir kısıtlamak