{"id":7684,"date":"2019-07-15T02:00:19","date_gmt":"2019-07-15T09:00:19","guid":{"rendered":"http:\/\/softwareengineeringdaily.com\/?p=7684"},"modified":"2021-10-07T07:36:48","modified_gmt":"2021-10-07T14:36:48","slug":"facebook-php-with-keith-adams","status":"publish","type":"post","link":"https:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/","title":{"rendered":"Facebook PHP with Keith Adams"},"content":{"rendered":"<p><img decoding=\"async\" data-attachment-id=\"2475\" data-permalink=\"https:\/\/softwareengineeringdaily.com\/2016\/04\/19\/googles-container-management-brendan-burns\/brendan-burns\/\" data-orig-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2016\/04\/brendan-burns.jpg?fit=175%2C175&amp;ssl=1\" data-orig-size=\"175,175\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"brendan-burns\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2016\/04\/brendan-burns.jpg?fit=175%2C175&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2016\/04\/brendan-burns.jpg?fit=175%2C175&amp;ssl=1\" class=\"alignright size-full wp-image-2475\" style=\"border-radius: 50%; border: 1px solid #000000; max-width: 175px; max-height: 175px;\" src=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2019\/07\/KeithAdams.jpeg?resize=175%2C175&#038;ssl=1\" width=\"175\" height=\"175\" data-recalc-dims=\"1\" \/><span style=\"font-weight: 400;\">Facebook was built using PHP, a programming language that was used widely in the late 90s and early 2000s. PHP allows developers to get web applications built quickly and easily, although PHP has a reputation for being difficult to scale.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In the early days of Facebook, the company was scaling rapidly on every dimension.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">New users were piling into Facebook. Existing users were increasing their interactions and developing new patterns of usage. The Facebook application was rolling out new features quickly, adding them into the Facebook PHP codebase.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A common pattern for scaling a large software application is to use a microservices architecture, breaking up the monolithic application into small services which can scale independently. For many applications, this pattern works well. But for some applications, microservices makes less sense.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Microsoft Excel is one example. In Excel, a user is making updates to a complex data model using formulas, functions, and other in-app tools that need to be fast, performant, and integrated. The user needs to have a sense that the Excel data model will update quickly in response to changes.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A software team working on a spreadsheet product such as Excel might prefer to keep all the application logic in a monolithic application.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A monolith can centralize logic and make it easier to reason about. A monolith can reduce the number of network hops, cutting down on distributed systems problems. Testing and deploying a monolithic application can be less complex than doing so in a distributed, microservices system.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Facebook chose to scale its PHP monolith rather than breaking it up into distributed microservices. Scaling PHP allowed Facebook to continue moving fast without going through a painful refactoring that would have slowed down the entire company.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The first effort to scale PHP involved transpiling the entire PHP application into C++. This C++ version of Facebook ran faster and with a lower memory footprint. But C++ required ahead-of-time compilation: the PHP codebase had to be converted to C++ in one synchronous step.<\/span><\/p>\n<p>The Hip Hop Virtual Machine (HHVM) is a just-in-time compiler that serves as an execution engine for PHP as well as Hack, a language that Facebook created as a dialect of PHP.<\/p>\n<p>HHVM allows for dynamic execution of code that is written in PHP or Hack. The code is first transpiled into HHBC, a high-level bytecode format that serves as an intermediate language. This bytecode is dynamically executed by the HHVM. As a bytecode virtual machine, HHVM has similarities to V8, the JVM, or the CLR.<\/p>\n<p><span style=\"font-weight: 400;\">Keith Adams was an engineer at Facebook for six years, where he helped develop infrastructure to scale PHP effectively. Keith is now the chief architect at Slack, which is also a scaled PHP application. Keith returns to Software Engineering Daily to discuss why and how Facebook scaled PHP.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">ANNOUNCEMENTS<\/span><\/h2>\n<ul>\n<li style=\"font-weight: 400;\"><a href=\"https:\/\/itunes.apple.com\/us\/app\/software-engineering-daily\/id1253734426?mt=8\"><span style=\"font-weight: 400;\">New SEDaily app for iOS<\/span><\/a><span style=\"font-weight: 400;\"> and for <\/span><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.koalatea.sedaily\"><span style=\"font-weight: 400;\">Android<\/span><\/a><span style=\"font-weight: 400;\">. It includes all 1000 of our old episodes, as well as related links, greatest hits, and topics. You can comment on episodes and have discussions with other members of the community. I\u2019ll be commenting on each episode, so if you hear an episode that you have some commentary on, jump onto the app, or on <\/span><a href=\"https:\/\/www.softwaredaily.com\/\"><span style=\"font-weight: 400;\">SoftwareDaily.com<\/span><\/a><span style=\"font-weight: 400;\"> to share your thoughts. And you can become a paid subscriber for ad free episodes at <\/span><a href=\"https:\/\/softwareengineeringdaily.com\/subscribe\"><span style=\"font-weight: 400;\">softwareengineeringdaily.com\/subscribe<\/span><\/a><span style=\"font-weight: 400;\">. <\/span><a href=\"http:\/\/altalogy.com\"><span style=\"font-weight: 400;\">Altalogy<\/span><\/a><span style=\"font-weight: 400;\"> is the company who has been developing much of the software for the newest app, and if you are looking for a company to help you with your mobile and web development, I recommend checking them out.\u00a0\u00a0\u00a0\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\"><a href=\"https:\/\/findcollabs.com\/\"><span style=\"font-weight: 400;\">FindCollabs<\/span><\/a><span style=\"font-weight: 400;\"> is a place to find collaborators and build projects. FindCollabs is the company I am building, and we are having an <\/span><a href=\"http:\/\/findcollabs.com\/open\"><span style=\"font-weight: 400;\">online hackathon with $2500 in prizes<\/span><\/a><span style=\"font-weight: 400;\">. If you are working on a project, or you are looking for other programmers to build a project or start a company with, check out FindCollabs. I\u2019ve been interviewing people from some of these projects on the <\/span><a href=\"https:\/\/podcasts.apple.com\/us\/podcast\/findcollabs-podcast\/id1460158612\"><span style=\"font-weight: 400;\">FindCollabs podcast<\/span><\/a><span style=\"font-weight: 400;\">, so if you want to learn more about the community you can hear that podcast.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Upcoming conferences I\u2019m attending: <\/span><a href=\"https:\/\/www.datadoghq.com\/blog\/dash-2019\/\"><span style=\"font-weight: 400;\">Datadog Dash July 16th and 17th in NYC<\/span><\/a><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\"><a href=\"http:\/\/opencoresummit.com\">Open Core Summit September 19th and 20th in San Francisco.<\/a><\/span><\/li>\n<li style=\"font-weight: 400;\">We are hiring two interns for software engineering and business development! If you are interested in either position, send an email with your resume to <a style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;\" href=\"mailto:jeff@softwareengineeringdaily.com\">jeff@softwareengineeringdaily.com<\/a><span style=\"font-weight: 400;\"> with \u201cInternship\u201d in the subject line.<\/span><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Facebook was built using PHP, a programming language that was used widely in the late 90s and early 2000s. PHP allows developers to get web applications built quickly and easily, although PHP has a reputation for being difficult to scale.\u00a0 In the early days of Facebook, the company was scaling rapidly on every dimension.\u00a0 New<\/p>\n","protected":false},"author":3,"featured_media":7713,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[1363,2143,1069,1084,14],"tags":[36,3054,2573,20,3053,325,504,3055],"class_list":["post-7684","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-all-episodes","category-exclusive-content","category-greatest-hits","category-javascript","category-podcast","tag-facebook","tag-hip-hop-virtual-machine","tag-keith-adams","tag-microservices","tag-microsoft-excel","tag-php","tag-slack","tag-v8-javascript"],"jetpack_publicize_connections":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Facebook PHP with Keith Adams - Software Engineering Daily<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Facebook PHP with Keith Adams - Software Engineering Daily\" \/>\n<meta property=\"og:description\" content=\"Facebook was built using PHP, a programming language that was used widely in the late 90s and early 2000s. PHP allows developers to get web applications built quickly and easily, although PHP has a reputation for being difficult to scale.\u00a0 In the early days of Facebook, the company was scaling rapidly on every dimension.\u00a0 New\" \/>\n<meta property=\"og:url\" content=\"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/\" \/>\n<meta property=\"og:site_name\" content=\"Software Engineering Daily\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-15T09:00:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-10-07T14:36:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2019\/07\/facebook.jpg?fit=960%2C606\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"606\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"SE Daily\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@software_daily\" \/>\n<meta name=\"twitter:site\" content=\"@software_daily\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"SE Daily\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/#article\",\"isPartOf\":{\"@id\":\"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/\"},\"author\":{\"name\":\"SE Daily\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/822f06fe7d6f895baba29a9c0a3aa6c8\"},\"headline\":\"Facebook PHP with Keith Adams\",\"datePublished\":\"2019-07-15T09:00:19+00:00\",\"dateModified\":\"2021-10-07T14:36:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/\"},\"wordCount\":732,\"publisher\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/#organization\"},\"image\":{\"@id\":\"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2019\/07\/facebook.jpg?fit=960%2C606&ssl=1\",\"keywords\":[\"Facebook\",\"Hip Hop Virtual Machine\",\"Keith Adams\",\"microservices\",\"Microsoft Excel\",\"PHP\",\"Slack\",\"V8 JavaScript\"],\"articleSection\":[\"All Content\",\"Exclusive Content\",\"Greatest Hits\",\"JavaScript\",\"Podcast\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/\",\"url\":\"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/\",\"name\":\"Facebook PHP with Keith Adams - Software Engineering Daily\",\"isPartOf\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/#primaryimage\"},\"image\":{\"@id\":\"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2019\/07\/facebook.jpg?fit=960%2C606&ssl=1\",\"datePublished\":\"2019-07-15T09:00:19+00:00\",\"dateModified\":\"2021-10-07T14:36:48+00:00\",\"breadcrumb\":{\"@id\":\"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2019\/07\/facebook.jpg?fit=960%2C606&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2019\/07\/facebook.jpg?fit=960%2C606&ssl=1\",\"width\":960,\"height\":606},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/softwareengineeringdaily.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Facebook PHP with Keith Adams\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#website\",\"url\":\"https:\/\/softwareengineeringdaily.com\/\",\"name\":\"Software Engineering Daily\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/softwareengineeringdaily.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#organization\",\"name\":\"Software Engineering Daily\",\"url\":\"https:\/\/softwareengineeringdaily.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2024\/01\/cropped-sed_website_banner.png?fit=549%2C169&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2024\/01\/cropped-sed_website_banner.png?fit=549%2C169&ssl=1\",\"width\":549,\"height\":169,\"caption\":\"Software Engineering Daily\"},\"image\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/software_daily\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/822f06fe7d6f895baba29a9c0a3aa6c8\",\"name\":\"SE Daily\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/87cddb92997841dafa04aa675bbdaca4?s=96&d=retro&r=pg\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/87cddb92997841dafa04aa675bbdaca4?s=96&d=retro&r=pg\",\"caption\":\"SE Daily\"},\"description\":\"The SE Daily podcast.\",\"sameAs\":[\"https:\/\/softwareengineeringdaily.com\"],\"url\":\"https:\/\/softwareengineeringdaily.com\/author\/erikawho\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Facebook PHP with Keith Adams - Software Engineering Daily","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/","og_locale":"en_US","og_type":"article","og_title":"Facebook PHP with Keith Adams - Software Engineering Daily","og_description":"Facebook was built using PHP, a programming language that was used widely in the late 90s and early 2000s. PHP allows developers to get web applications built quickly and easily, although PHP has a reputation for being difficult to scale.\u00a0 In the early days of Facebook, the company was scaling rapidly on every dimension.\u00a0 New","og_url":"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/","og_site_name":"Software Engineering Daily","article_published_time":"2019-07-15T09:00:19+00:00","article_modified_time":"2021-10-07T14:36:48+00:00","og_image":[{"width":960,"height":606,"url":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2019\/07\/facebook.jpg?fit=960%2C606","type":"image\/jpeg"}],"author":"SE Daily","twitter_card":"summary_large_image","twitter_creator":"@software_daily","twitter_site":"@software_daily","twitter_misc":{"Written by":"SE Daily","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/#article","isPartOf":{"@id":"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/"},"author":{"name":"SE Daily","@id":"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/822f06fe7d6f895baba29a9c0a3aa6c8"},"headline":"Facebook PHP with Keith Adams","datePublished":"2019-07-15T09:00:19+00:00","dateModified":"2021-10-07T14:36:48+00:00","mainEntityOfPage":{"@id":"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/"},"wordCount":732,"publisher":{"@id":"https:\/\/softwareengineeringdaily.com\/#organization"},"image":{"@id":"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2019\/07\/facebook.jpg?fit=960%2C606&ssl=1","keywords":["Facebook","Hip Hop Virtual Machine","Keith Adams","microservices","Microsoft Excel","PHP","Slack","V8 JavaScript"],"articleSection":["All Content","Exclusive Content","Greatest Hits","JavaScript","Podcast"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/","url":"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/","name":"Facebook PHP with Keith Adams - Software Engineering Daily","isPartOf":{"@id":"https:\/\/softwareengineeringdaily.com\/#website"},"primaryImageOfPage":{"@id":"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/#primaryimage"},"image":{"@id":"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2019\/07\/facebook.jpg?fit=960%2C606&ssl=1","datePublished":"2019-07-15T09:00:19+00:00","dateModified":"2021-10-07T14:36:48+00:00","breadcrumb":{"@id":"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/#primaryimage","url":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2019\/07\/facebook.jpg?fit=960%2C606&ssl=1","contentUrl":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2019\/07\/facebook.jpg?fit=960%2C606&ssl=1","width":960,"height":606},{"@type":"BreadcrumbList","@id":"http:\/\/softwareengineeringdaily.com\/2019\/07\/15\/facebook-php-with-keith-adams\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/softwareengineeringdaily.com\/"},{"@type":"ListItem","position":2,"name":"Facebook PHP with Keith Adams"}]},{"@type":"WebSite","@id":"https:\/\/softwareengineeringdaily.com\/#website","url":"https:\/\/softwareengineeringdaily.com\/","name":"Software Engineering Daily","description":"","publisher":{"@id":"https:\/\/softwareengineeringdaily.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/softwareengineeringdaily.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/softwareengineeringdaily.com\/#organization","name":"Software Engineering Daily","url":"https:\/\/softwareengineeringdaily.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/softwareengineeringdaily.com\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2024\/01\/cropped-sed_website_banner.png?fit=549%2C169&ssl=1","contentUrl":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2024\/01\/cropped-sed_website_banner.png?fit=549%2C169&ssl=1","width":549,"height":169,"caption":"Software Engineering Daily"},"image":{"@id":"https:\/\/softwareengineeringdaily.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/software_daily"]},{"@type":"Person","@id":"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/822f06fe7d6f895baba29a9c0a3aa6c8","name":"SE Daily","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/87cddb92997841dafa04aa675bbdaca4?s=96&d=retro&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/87cddb92997841dafa04aa675bbdaca4?s=96&d=retro&r=pg","caption":"SE Daily"},"description":"The SE Daily podcast.","sameAs":["https:\/\/softwareengineeringdaily.com"],"url":"https:\/\/softwareengineeringdaily.com\/author\/erikawho\/"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2019\/07\/facebook.jpg?fit=960%2C606&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p7GuoD-1ZW","_links":{"self":[{"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/posts\/7684"}],"collection":[{"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/comments?post=7684"}],"version-history":[{"count":0,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/posts\/7684\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/media\/7713"}],"wp:attachment":[{"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/media?parent=7684"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/categories?post=7684"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/tags?post=7684"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}