Your SlideShare is downloading. ×
0
Win32 api extension for php
Win32 api extension for php
Win32 api extension for php
Win32 api extension for php
Win32 api extension for php
Win32 api extension for php
Win32 api extension for php
Win32 api extension for php
Win32 api extension for php
Win32 api extension for php
Win32 api extension for php
Win32 api extension for php
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Win32 api extension for php

1,792

Published on

My first talk ever, given at the Microsoft Web Dev Summit in 2007 …

My first talk ever, given at the Microsoft Web Dev Summit in 2007

Project is now winapiforphp on bitbucket

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,792
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Win32API extension for PHP Cool Windows Stuff for PHP
  • 2. Aren’t Desktop Apps Dead?
    • People aren’t always online
    • Some applications would be bandwidth prohibitive
    • Some data is too sensitive to be passed on the wire
    • Embedded OS’s don’t always work well with websites
    • Browsers are just Quirky (I’m looking at you, IE6)
  • 3. PHP Advantages
    • No Compiling
    • Instant Changes
    • No learning curve for a new language
    • Plug into PHP extensions
    • Easy to Use
    • Fast to Write
  • 4. PHP Disadvantages
    • Speed
    • Additional Extensions/Libraries needed
    • Speed
    • Distribution (phar is helpful there)
    • Speed
    • Security
    • (do you see a theme?)
  • 5. So what are your options?
    • PHP-GTK2
    • PHP-QT
    • PHP-WxWidgets (vaporware)
    • Winbinder (so not thread safe)
    • Win32API – Win::Ui
    • Who is your audience?
  • 6. Things to Decide
    • OS support (only PHP-GTK2 is truly cross-platform at the moment – you can even run it on Solaris if you’re insane)
    • Distribution mechanism (you need to distribute PHP, your extension, plus your code)
    • Upgrading
    • Security
    • Size
  • 7. What has gone Before
    • What *nix has that we don’t
    • Semaphores
    • Shared Memory (not shmop)
    • IPC Functions
    • Process Control Functions
  • 8. What’s Hiding in PECL
    • Win32Std – resource files as streams, basic dialog boxes, registry access
    • Win32service – services control
    • Win32scheduler – windows scheduled tasks
    • Win32ps - PSAPI (Process Status Helper) to get information
    • IISfunc - Provides IIS functions
  • 9. Reinventing the Wheel
    • Problems with Winbinder
    • Thread safety issues
    • PHP4 style API
    • No BC breaks allowed
    • Few developers
    • Differences in Direction
  • 10. So what works?
    • PHP 5.3 target (we will release when they do)
    • NAMESPACES
    • Intelligent, easy to use message handling using callbacks
    • Locking CLI into a loop (modal process)
    • Garbage Collection!!
  • 11. Beyond Thunderdome
    • Goal is ALL (and I do mean all) of the win32api
    • An extension system (similar to PHP’s extensions) that allow only the “modules” of the API you intend to use
    • Low level system items (such as threads, processes, IPC) are the “core” and available in all SAPIS
    • Some features (Win::Ui) are specific to certain SAPI’s (embed, CLI)
  • 12. Resources
    • http://svn.bluga.net/win32api
    • Subversion repository
    • http://gtk.php.net
    • PHP-GTK2 Extension
    • http://php-qt.org
    • PHP-QT Extension
    • http://perisama.net
    • Windows Builds for all kinds of PHP stuff (win32api binaries to play will be here)

×