Integration between PHP and .NET Applications

of 17
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Information Report
Category:

Documents

Published:

Views: 23 | Pages: 17

Extension: PDF | Download: 0

Share
Description
Integration between PHP and .NET Applications. Svetlin Nakov. National Academy for Software Development. academy.devbg.org. Contents. PHP Interoperability PHP and COM Writing WordPress Plug-in in C# Phalanger: Running PHP in .NET CLR. PHP Interoperability. PHP Interoperability.
Transcript
Integration between PHP and .NET ApplicationsSvetlin NakovNational Academy for Software Developmentacademy.devbg.orgContents
  • PHP Interoperability
  • PHP and COM
  • Writing WordPress Plug-in in C#
  • Phalanger: Running PHP in .NET CLR
  • PHP InteroperabilityPHP Interoperability
  • What is Interoperability?
  • Ability to work together with other products, frameworks, languages and platforms
  • PHP Interoperability
  • Call external process – shell_exec() function
  • Invoke native C/C++ code (.so / .dll libraries)
  • dl() function in PHP (load extension library)
  • SWIG – http://www.swig.org/
  • COM operability (in Windows)
  • Web services (REST / SOAP)
  • PHP and COMWhat is COM?
  • Component Object Model (COM)
  • Microsoft Windows built-in technology
  • Inter-process communication between components and applications
  • Example: Display Adobe Acrobat PDF in Internet Explorer
  • Object-oriented approach
  • Allows dynamic object creation and method invocation and properties / events access
  • Language-neutral technology
  • Creating COM Component in .NET Framework and C#
  • Define the COM dispatch interface:
  • Define the COM implementation class:
  • [InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]public interface ICalculator { int Sum(int a, int b)}namespace PlayingWithCOM{ [ComVisible(true)] [Guid("38AADE7B-79B8-31A1-B365-22C6AAE5232C")] public class Calculator : ICalculator { public int Sum(int a, int b) { return a+b; } }}Register COM Component Assembly in the Registry
  • Sign the assembly with strong name:
  • Install the assembly in the Global Assembly Cache (GAC):
  • Register the assembly as COM component in Windows registry:
  • [assembly:AssemblyKeyFile(@"secret-key.snk")]gacutil -i PlayingWithCOM.dllregasm PlayingWithCOM.dllUsing COM Objects from PHP Script
  • Creating COM object and invoking method from PHP:
  • $calc = newCOM("PlayingWithCOM.Calculator");$result = $calc->Sum(5, 6);echo $result;Writing WordPress Plug-ins in C#WordPress on IIS
  • Running WordPress in IIS
  • Run PHP on IIS:
  • Install FastCGI ISAPI extension for IIS
  • Install and configure PHP for Windows
  • Alternatively use Web Platform Installer
  • Install and configure MySQL for Windows
  • Configure WordPress and URL rewriting:
  • ISAPI_Rewrite in IIS 5.1/6
  • Microsoft URL Rewrite for IIS 7
  • Creating WordPress Plug-in
  • We want to create WordPress plug-in for downloading a blog post as PDF document
  • Converting HTML page to PDF is not straightforward problem!
  • We prefer to implement this in C#
  • Use Internet Explorer through COM
  • Open the web page URL in Internet Explorer
  • Take the entire page as graphics image
  • Cut the image into pages and write them to PDF document with PdfSharp
  • Invoke the C# class from PHP through COM
  • Creating WordPress Plug-in (2)
  • We want to add a parameter "?pdf" to all WordPress URLs to produce PDF output
  • We hook the WordPress action "init"
  • In the action handler invoke the C# based Web2Pdf converter
  • add_action('init', 'init_action_handler');$web2pdf = new COM("Web2Pdf.WebPageToPDFGenerator");$pdf_base64 = $web2pdf->GeneratePdfFromWebPageAsBase64($url);Creating WordPress Plug-In in C# - Web2Pdf ConverterLive DemoPhalangerThe PHP Language Compiler for .NETPhalanger Project: Running PHP in .NET Framework
  • Phalanger Project
  • Open source PHP compiler for .NET CLR
  • Web site: http://www.php-compiler.net
  • Compiles PHP code to MSIL just like C#
  • Implements all standard PHP functions
  • Two modes of execution:
  • Classical PHP execution model – run existing applications like phpBB, Drupal, etc.
  • ASP.NET mode – use ASP.NET with PHP language – mix .NET and PHP functions
  • Integration between PHP and .NET ApplicationsQuestions?
    We Need Your Support
    Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

    Thanks to everyone for your continued support.

    No, Thanks