PHPEmbed
PHPEmbed
The PHP programming language has solidified itself as the language of choice for many top internet properties, including Facebook. PHP is easy to use and integrates well with Apache, Memcache, and MySQL. Despite its suitability for web development and scripting, PHP is generally not the best choice for standalone software or servers. C++, on the other hand, is well suited for building both online and offline services.
Unfortunately, if the new services operates with data managed by the existing PHP code base it can be dangerous to use a separate data access pattern. If the cache keys or database schema were to change in the PHP code base then the service would be broken (and potentially corrupting data for the PHP code base) until the code was updated and the program recompiled and restarted.
Faced with this problem we decided to embed the PHP Interpreter into C++ binaries. This isn't a novel endeavor by any means; Apache uses the PHP Server API (SAPI) to accomplish exactly that. However, when we began attempting integration of our own we found that the SAPI required quite a bit of expertise to manipulate effectively.
In order to make embedding PHP truly simple for all of our developers we developed the PHPEmbed library which is just a more accessible and simplified API built on top of the PHP SAPI. The library is so useful, we decided to share it with the world. Check it out for yourself at http://developers.facebook .com/phpembed/
Boz is a software engineer at Facebook and, like PHPEmbed, he is open source
Unfortunately, if the new services operates with data managed by the existing PHP code base it can be dangerous to use a separate data access pattern. If the cache keys or database schema were to change in the PHP code base then the service would be broken (and potentially corrupting data for the PHP code base) until the code was updated and the program recompiled and restarted.
Faced with this problem we decided to embed the PHP Interpreter into C++ binaries. This isn't a novel endeavor by any means; Apache uses the PHP Server API (SAPI) to accomplish exactly that. However, when we began attempting integration of our own we found that the SAPI required quite a bit of expertise to manipulate effectively.
In order to make embedding PHP truly simple for all of our developers we developed the PHPEmbed library which is just a more accessible and simplified API built on top of the PHP SAPI. The library is so useful, we decided to share it with the world. Check it out for yourself at http://developers.facebook
Boz is a software engineer at Facebook and, like PHPEmbed, he is open source
Most Popular Stories
المفضلة للفيسبوك
المواد المؤرشفة بناءً على الموضوع
Abuse (3)
Advertising (4)
Applications (12)
Chat (3)
Comments (2)
Credits (1)
Data Centers (1)
Education (2)
Events (2)
Facebook Tips (5)
Family (1)
Fan Box (1)
fbFund (1)
Filters (1)
Friend Lists (3)
Friends Page (1)
Games (3)
Gifts (4)
Groups (6)
Growth (7)
Guest blog (23)
Hackathon (2)
Help Center (1)
Home Page (1)
Inbox (1)
Language (7)
Live Feed (5)
Marketplace (1)
Memology (1)
Mobile (3)
Music (3)
News Feed (13)
Notifications (5)
Pages (21)
Parents (6)
Payments (2)
Phishing (2)
Photos (5)
Platform (6)
Privacy (15)
Prototypes (1)
Publisher (3)
Relationships (1)
Religion (1)
Research (4)
Safety (2)
Search (4)
Security (8)
Share (1)
Spam (3)
Sports (1)
Status Updates (5)
Suggestions (2)
Tagging (1)
Television (1)
Toolbar (1)
Translation (5)
Username (2)
Video (1)
Your Stories (12)
المنشورات المؤرشفة بحسب التاريخ
2010
فبراير (6)
يناير (11)
2009
ديسمبر (14)
نوفمبر (12)
أكتوبر (17)
سبتمبر (10)
أغسطس (10)
يوليو (10)
يونيو (13)
مايو (13)
أبريل (13)
مارس (14)
فبراير (13)
يناير (8)
2008
ديسمبر (15)
نوفمبر (14)
أكتوبر (12)
سبتمبر (9)
أغسطس (2)
يوليو (3)
يونيو (6)
مايو (5)
أبريل (6)
مارس (2)
فبراير (4)
يناير (3)
2007
ديسمبر (4)
نوفمبر (4)
أكتوبر (1)
سبتمبر (3)
أغسطس (4)
يوليو (4)
يونيو (2)
مايو (5)
أبريل (9)
مارس (8)
فبراير (7)
يناير (4)
2006
ديسمبر (3)
نوفمبر (6)
أكتوبر (5)
سبتمبر (7)
أغسطس (4)
المنشورات المؤرشفة بحسب Blogger
Abraham Cooper (1)
Adam Conner (4)
Adam Hupp (1)
Aditya Agarwal (2)
Akhil Wable (1)
Alex Moskalyuk (1)
Ana Muller (1)
Annie Ta (2)
Ari Steinberg (2)
Arjun Banker (1)
Austin Haugen (1)
Barry Schnitt (1)
Benjamin Ling (1)
Blair Heuer (1)
Blake Chandlee (1)
Bo Hong Deng (1)
Bob Trahan (2)
Brian Shire (1)
Brynn Shepherd (1)
Cameron Marlow (1)
Carolyn Abram (11)
Casi Lumbra (1)
Cat Lee (3)
Chad Little (2)
Chengos Lim (1)
Chris Cox (2)
Chris Hughes (2)
Chris Kelly (4)
Chris Putnam (4)
Chris Ward (1)
Craig Donato (1)
Dan Rose (1)
Daniel Chai (1)
Danna Gutman (1)
Dave Fetterman (1)
Dave Morin (1)
Doug Beaver (2)
Elliot Schrage (2)
Eric Kwan (2)
Eric Zamore (1)
Ethan Beard (1)
Evan Priestley (1)
Ezra Callahan (8)
Florin Ratiu (1)
Gareth Davis (1)
Gene Fant (1)
Ghassan Haddad (1)
Gibson Biddle (1)
Graeme Menzies (1)
Greg Badros (1)
Jack Lindamood (1)
Jackie Kong (1)
Jake Brill (2)
James Wang (2)
Jared Cohen (1)
Jason Min (2)
Jason Sobel (1)
Jeff Kanter (1)
Jeff Williams (1)
Jesse Dwyer (1)
Jimmy Lavoie (1)
Jing Chen (1)
Joanna Lee (1)
Joe Green (1)
Joe Hewitt (3)
Joe Sullivan (1)
Jon Fougner (2)
Jon Warman (2)
Jonathan Hsu (1)
Josh Elman (1)
Josh Wiseman (2)
Julie Trescott (1)
Julie Zhuo (2)
Justin Bishop (1)
KC Estenson (1)
Kari Lee (1)
Kate Losse (3)
Kathy H. Chan (4)
Katie Carter (2)
Katie Geminder (6)
Kevin Arata (1)
Kevin Der (1)
Lars Backstrom (1)
Leah Pearlman (5)
Lee Byron (1)
Liz Perle (1)
Luke Shepard (1)
Malorie Lucich (2)
Mark Kinsey (2)
Mark Slee (9)
Mark Zuckerberg (20)
Matt Cahill (1)
Max Kelly (3)
Mike Honda (1)
Naomi Gleit (4)
Natalie Minor (1)
Nico Vera (3)
Paul Janzer (1)
Paul McDonald (1)
Pedram Keyani (1)
Pete Bratach (1)
Peter X. Deng (2)
Philip Fung (3)
Prashant Malik (1)
Raylene Yung (1)
Richard Allan (2)
Rob Goodlatte (1)
Robert Johnson (1)
Roddy Lindsay (2)
Ruchi Sanghvi (2)
Ryan McGeehan (3)
Sam O'Rourke (1)
Sameer Moidu (1)
Sara Lannin (7)
Sasha Rosse (1)
Scott Marlette (1)
Scott Mills (1)
Shaun King (1)
Simon Axten (3)
Sophia Huang (1)
Steven Grimm (1)
Suzie White (1)
Ted Ullyot (1)
Tim Sparapani (2)
Tom Occhino (1)
Tom Whitnah (5)
Victor Valdez (1)
Wayne Chang (3)
Will Chen (3)
Will Gardner (1)
Xenia Nosov (1)
Yair Landau (1)
Yishan Wong (2)

