C De Yazdığın Fonksiyonu Phpye Eklemek ?
-
http://forum.ceviz.net/php/93007-ileri-duzey-php-programciligi.html
ileri düzey php programcılığı yazmış biri.2. mesajda adam baya bi döktürmüş.
Bilmiyorum c yi, phpye eklemek tamam ileri düzey olabilirde ne kadar gerekli ? php5 in sunamadığı ne var.Demke ki bilmediğimiz birşeyler var deyip konuyu açayım dedim.
Php içinde function hebe(){} yerine tanımlamaktansa c içinde tanımlayıp eklemek belki daha performanslı olabilir, o yüzden söylemiş olabilir belki.
Bunlar nasıl yapılır fikriniz varmı ?
-
c'de yazdığın kodu php'ye nasıl entegre edeceksin ki ? syntaxları aynı değil tam olarak
-
sokoban bunu yazdı:
-----------------------------
c'de yazdığın kodu php'ye nasıl entegre edeceksin ki ? syntaxları aynı değil tam olarak
-----------------------------hocam bende tam olarak onu soruyorum :) nasıl birşey demiş anlayamadım.
-
zumsuk bunu yazdı:
-----------------------------
sokoban bunu yazdı:
-----------------------------
c'de yazdığın kodu php'ye nasıl entegre edeceksin ki ? syntaxları aynı değil tam olarak
-----------------------------hocam bende tam olarak onu soruyorum :) nasıl birşey demiş anlayamadım.
-----------------------------acaba executable dosyalara parametre gönderip kompleks işleri dış programlara yaptırmak gibi bişey den mi bahsediyor.
-
sokoban bunu yazdı:
-----------------------------
acaba executable dosyalara parametre gönderip kompleks işleri dış programlara yaptırmak gibi bişey den mi bahsediyor.
-----------------------------
#ifdef PHP_WIN32
#define PHP_HELLO_API __declspec(dllexport)
#else
#define PHP_HELLO_API
#endifkoduns adece bir kısmı demiş.Sistem ile ilişkillendiriyor .
c ile php ilişkilendiriliyor mu yoksa c fonksiyonlarını php demi kullanmayı kast ediyor anlayamadım.
-
Direkt çağırmak tabiki mümkün değil, extension yazmanız gerekir ama çok kullanışsız bir yöntem. Çünkü yazdığınız dll i ve içerdiği fonksiyonları ancak kendi hostunuzda kullanabilirsiniz. Php web server'ların hemen hepsi php ye zaten dahil olan socket fonksiyonlarını bile kullanmanıza izin vermez.
Yukarıdaki kod , aslında kod da değil sadece önişlemci direktifi şunu söylüyor, win32 sistemindeysek fonksiyonları dll den export et, aksi halde PHP_HELLO_API etiketini sil.
-
Tugberk bunu yazdı:
-----------------------------
Direkt çağırmak tabiki mümkün değil, extension yazmanız gerekir ama çok kullanışsız bir yöntem. Çünkü yazdığınız dll i ve içerdiği fonksiyonları ancak kendi hostunuzda kullanabilirsiniz. Php web server'ların hemen hepsi php ye zaten dahil olan socket fonksiyonlarını bile kullanmanıza izin vermez.
Yukarıdaki kod , aslında kod da değil sadece önişlemci direktifi şunu söylüyor, win32 sistemindeysek fonksiyonları dll den export et, aksi halde PHP_HELLO_API etiketini sil.
-----------------------------yani performanslı yada her zaman işimize yarıyacak birşey değil dimi ?
-
zumsuk bunu yazdı:
-----------------------------
yani performanslı yada her zaman işimize yarıyacak birşey değil dimi ?
-----------------------------Bunu yaparak PHP dilini değiştirmiş oluyorsun, (Windows için) php'nin kendi dll ve fonksiyonları da eninde sonunda subsystem dll lerini (kernel32, user32 vs) ordan ntdll.dll'i ordan da kernelin kendisini çağırır. Yani php'nin kendisi script değil normal bir programdır. İşte sen bu programa eklenti ekliyorsun, bir dll ekleyip yeni bir PHP yaratıyorsun. Server yöneticine, şu eski php'yi kaldır da benimkini kuruver diyemessin. Doğal olarak ancak kendi server'ında kullanabilirsin.
Performans konusunda tabiki daha performanslı olur ancak taşınabilir olmaz , hem o fonksiyonları kullandığın script taşınabilir olmaz, hemde her sistem için php yi yeniden derlemen gerekir. Yani bence gereksiz bir işlem, ama test için yazabilirsiniz, internette birsürü döküman var hepsi birbirine benziyor, php extension diye aratırsanız bulursunuz.
-
sağol hocam.
İşin özü, server kiralamadıkça (olduğu gibi makinayı) hiiiçç bi işe yaramaz.Daha doğrusu çok zahmetli olur.
edit:
tabi öğrenmekte yarar var biraz bakayım dökümanlara falan.
-
Aynen öyle, kendi server'ın olduktan sonra da direkt C ile yazmak daha mantıklı, mesela libcurl ile yapılamayacak şey yok (web konusunda).
-
"Php içinde function hebe(){} yerine tanımlamaktansa c içinde tanımlayıp eklemek belki daha performanslı olabilir, o yüzden söylemiş olabilir belki "
Gereksiz bi meşsakkaet senin dedin gibi php5 daha mantıklı geliyor şahsen