Version 27 (modified by 9 years ago) ( diff ) | ,
---|
Help about PHP
- Can you help me with my PHP code?
- Stack Overflow
- PHP Manual (especially the comments)
- PHP: The Right Way
Recommandations and Norms
PHP Framework Interop Group
PHP Standards Recommendations
- php-fig.org/psr
- psr Packagist
- psr implementation Packagist
- Debian: php-psr
- PSR-3 psr/log ?
providers monolog/monolog
- PSR-7 psr/http-message ?
providers zendframework/zend-diactoros
(for comparison symfony/http-foundation
)
- PSR-6 psr/cache ?
providers symfony/cache
cache/array-adapter
- PSR-14 psr/event-manager ?
providers phossa2/event
- bee4/events ?
providers symfony/event-dispatcher
evenement/evenement
league/event
- PSR-11 psr/container ?
providers phossa2/di
(for comparison symfony/dependency-injection
- container-interop/container-interop ?
providers zendframework/zend-servicemanager
xtreamwayz/pimple-container-interop
(based on pimple/pimple
) aura/di
...
- PSR-16 psr/simplecache ?
providers matthiasmullie/scrapbook
- PSR-15 psr/middleware ?
providers [not yet implemented]
Middlewares
- PSR 15 @ php-fig.org/psr
Stack
- stackphp.com GitHub stackphp
- StackPHP Explained
- StackPHP Middleware
- Slim: a micro framework for PHP (with ((Stack? -> psr-7?)) Middleware support) slim/slim
IDE, editing code
- Comparison_of_integrated_development_environments#PHP
- PHP_Development_Tools
- php development tools site:debian.org
- https://help.ubuntu.com/community/EclipsePDT
- Eclipse_Che
- https://packages.debian.org/en/eclipse
- https://help.ubuntu.com/community/EclipseIDE
- PHP_Development_Tools
- Class_browser
- Code_refactoring
- eclipse only open source solution 2016-09
Packagist, Badges and Continuous Integration
Packagist badges
About Continuous Integration
- PHP and Continuous Integration with Travis CI
- Visualize Your Code’s Quality with PhpMetrics
- Continuous Integration with PHP-CI
- You don't realize your code sucks. Travis and Scrutinizer FTW
Continuous Integration Providers
Package system
- puli Packagist puli/cli
- php-http/discovery Finds installed HTTPlug implementations and PSR-7 message factories
- php-http/message Message Factory (docs)
PHP Libraries
hybridauth/hybridauth
http://hybridauth.sourceforge.net/userguide.html
$ composer require hybridauth/hybridauth
Google::
- easy
- easy
OpenID::
- easy (no secret information needed)
- https://github.com/hybridauth/hybridauth/tree/master/additional-providers/hybridauth-yahoo-openid
- http://hybridauth.sourceforge.net/userguide/tuts/specific-provider-wrapper.html
- https://login.yahoo.com/
- a mobile phone number is required to register a new account
- yahoo Application consumer key
- Not clear if the domain root URL can be used as redirect URI
- Using the domain root URL as redirect URI results in an error at the time of clicking the icon on the registered web site
- It is not possible to register inside Microsoft developper website a redirect URI similar to the one used for Google, because some caracteres are not accepted.
- one could try to make a simpler redirection URI which would redirect to the one simililar to the one used for Google.
- microsoft oauth2 application id
- Getting Your Client ID for Web Authentication
- https://account.live.com
- Mes applications
- https://developers.facebook.com/apps needs a phone number (sound or text) or a credit card
jessie (stable) | bpo | stretch (testing) | /usr/share/php/ | ||||
php5-apcu | /usr/share/php/ | ||||||
composer/composer | 2016-03-27 | b | # | composer | Composer | ||
hybridauth/hybridauth | 2016-01-12 | 2.6 | |||||
psr/log | 2012-12-21 | 1.0 | 1.0 | 1.0 | php-psr-log | Psr/Log | |
symfony/symfony | 2016-02-28 | 3.0 | 2.3 | 2.8 | php-symfony-framework-bundle | Symfony/Bundle/FrameworkBundle | |
zendframework1, zendframework1 | zendframework | /usr/share/php/ | |||||
zendframework 2 | php-zend- | ||||||
zendframework/zendsearch | php-zend-search | /usr/share/php/ | |||||
https://packagist.org/packages/ | DebianPackage | /usr/share/php/ | |||||
https://packagist.org/packages/ | DebianPackage | /usr/share/php/ |
APCu and APC
Aura
Container Interoperability
Drupal
Symfony
Zend
As of mid 2016 documentation looks more complete for Zend 1, at least for some modules. Maybe more in books for Zend 2. ZF3 is also out, now each module has its own independent version.
- zf2-documentation release-2.3.9 GitHub
- zend+framework WorldCat
English
- https://www.packtpub.com/web-development/instant-zend-framework-20
- https://www.packtpub.com/web-development/zend-framework-2-application-development
- https://www.packtpub.com/web-development/zend-framework-2-cookbook
- Zend Framework 2.0 by Example: Beginner’s Guide Packt, WorldCat, BAnQ
French
zend-cache (-memory)
zend-expressive
Develop PSR-7 middleware applications in minutes! (New in ZF3)
zendframework/zend-expressive
zend-feed
zendframework/zend-feed
- eko/feedbundle A Symfony bundle to build RSS feeds from entities
zend-mail
Allow reading message. This seems not to be the case for SwiftMailer (august 2016).
zendframework/zend-mail
- https://framework.zend.com/manual/2.4/en/modules/zend.mail.introduction.html
- https://zendframework.github.io/zend-mail/ (empty page august 2016)
- zf2-documentation release-2.3.9 GitHub
- (php-zend-mail not yet)
zf1/zend-mail
- https://framework.zend.com/manual/1.12/en/zend.mail.html fr
- https://framework.zend.com/apidoc/1.10/_Mail.html
- zendframework
zend-search(-lucene)
zendframework/zendsearch
- https://framework.zend.com/manual/2.4/en/tutorials/lucene.intro.html (1 page only, august 2016)
- zf2-documentation release-2.3.9 GitHub
- readthedocs
- Zend Framework 2.0 by Example: Beginner’s Guide
- php-zend-search
- search-bundle Packagist
zf1/zend-search-lucene
Packages
PHP Security Programming
- http://stackoverflow.com/questions/6474783/which-server-variables-are-safe
- http://stackoverflow.com/questions/4247704/how-tamper-proof-is-the-server-variable-in-php
PHP Programming
- http://php.net/manual/en/language.constants.predefined.php
- http://php.net/manual/en/function.getcwd.php
- http://stackoverflow.com/questions/4645082/get-absolute-path-of-current-script
- php+curent+directory
- http://php.net/manual/en/reserved.variables.environment.php
- http://php.net/manual/en/function.phpinfo.php
- http://php.net/manual/en/function.readlink.php
- http://stackoverflow.com/questions/12580330/php-dirname-returns-symlink-path
- https://bugs.php.net/bug.php?id=46260
- php+symlink+path
- http://php.net/manual/en/function.dirname.php
Namespaces
- https://www.youtube.com/results?search_query=php+namespaces
- http://knpuniversity.com/screencast/php-namespaces-in-120-seconds
Testing
- testing Packagist
BDD Testing
- BDD testing Packagist
- codeception/codeception
Unit Testing
- unit testing packagist
- phpunit/phpunit
The PHP Unit Testing framework.
- atoum/atoum
Simple modern and intuitive unit testing framework for PHP 5.3+
- atoum atoum ... atoum-bundle
Functional or acceptance testing
It's 2016 now and there's Mink. It even supports different engines from headless pure-PHP "browser" (without JavaScript), over Selenium (which needs a browser like Firefox or Chrome) to a headless "browser.js" in NPM, which DOES support JavaScript. http://stackoverflow.com/questions/199045/is-there-a-php-equivalent-of-perls-wwwmechanize
- Something similar is available in Python.
Detecting coding standards' violations
PHP_CodeSniffer
- PHP_CodeSniffer Packagist php-codesniffer
- squizlabs/php_codesniffer
- leaphub/phpcs-symfony2-standard
- Fixing Errors Automatically
php-cs-fixer
- php-cs-fixer Packagist
- friendsofphp/php-cs-fixer
- fabpot/php-cs-fixer Abandoned!
- PHP Coding Standards Fixer
Test framework
- behat
- peridot-php/peridot
Asynchronous IO Programming
General libraries
React
The event loop is based on the reactor pattern (hence the name) and strongly inspired by libraries such as EventMachine (Ruby), Twisted (Python) and Node.js (V8).
- keyword: reactor pattern
- Reactor_pattern, Explanation of the “Reactor pattern”, Reactive_programming, Proactor_pattern (Boost.Asio and maybe some parts of Python asyncio]
The name
Packages
- from react https://packagist.org/search/?q=react https://github.com/reactphp, http://reactphp.org/
- react/event-loop
- suggests:
- Libevent php.net/manual pecl How do you install Libevent for PHP? keyword:php ext libevent site:packages.debian.org
- Event docs.php.net
- Libev php.net/manual/en/book php.net/manual/en/intro pecl
- litgroup/event-loop-bundle
- suggests:
- react/react
- react/promise php-react-promise
- react/http-client
- gos/pnctl-event-loop-emitter
- mkraemer/react-pcntl PCNTL bindings for ReactPHP
- recoil/recoil Coroutines
- icecave/mephisto An asynchronous process management library for React. (uses extension included in Debian 8 core module)
- react/mysql
- voryx/pgasync Async Reactive Postgres Driver for PHP (Non-blocking)
- jogaram/react-bundle
- itscaro/react-bundle
- webstronauts/react-bundle
- ftdebugger/react-zf2
Family
- cboden/ratchet http://socketo.me/ Ratchet: WebSockets for PHP. Ratchet is a loosely coupled PHP library providing developers with tools to create real time, bi-directional applications between clients and servers over WebSockets. https://packagist.org/search/?q=ratchet
- https://github.com/bergie/dnode-php
Event
- Event_(computing), Event-driven_programming
- Event-Driven Programming: Introduction, Tutorial, History
- Packagist: event
- evenement/evenement
Event loop
Promise (concurrent.futures in python)
- https://packagist.org/search/?q=promise promise
- react/promise php-react-promise
- guzzlehttp/promises php-guzzlehttp-promises
- php-http/promise
Coroutine
State machine
- Check link with Asynchronous IO
- Automata_theory, Automata-based_programming
- Packagist: state machine
- winzou/state-machine
- winzou/state-machine-bundle
Topic libraries
By alphabetical order
Assertion
- Would it belong to the test section?
- https://packagist.org/search/?q=assertion
- jacobstr/esperance
- esperance/esperance
BDD Assertion
- BDD assertion Packagist
- codeception/verify
Comparator
- Packagist: comparator
- sebastian/comparator
Diff
Error handling
Feed (RSS, Atom, ...)
- https://en.wikipedia.org/wiki/Web_feed
- https://en.wikipedia.org/wiki/RSS
- https://en.wikipedia.org/wiki/Atom_%28standard%29
- https://packagist.org/search/?q=rss
- zendframework/zend-feed
- simplepie/simplepie
- fguillot/picofeed
Git
GitHub
- github Packagist
- knplabs/github-api
HTTP Clients
- https://packagist.org/search/?q=HTTP%20client
- php-http/httplug HTTPlug, the HTTP client abstraction for PHP
- guzzlehttp/guzzle
- fabpot/goutte Goutte is a thin wrapper around the following fine PHP libraries: Guzzle HTTP Component; Symfony Components: BrowserKit, CssSelector and DomCrawler.
- kriswallsmith/buzz
- zendframework/zend-http
- react/http-client
- aura/http
Middlewares
- middleware Packagist
- HttpKernel middlewares
Stack
- stack/builder Builder for stack middlewares based on ((Symfony)) HttpKernelInterface.
- stack Packagist
PSR-7 (http-message) Middlewares
- oscarotero/psr7-middlewares Collection of HTTP middlewares compatible with PSR-7
Stratigility
Slim Middleware
- Middleware
- slim/middleware ((up to date?))
Openid Connect
- https://packagist.org/search/?q=openid%20connect
- ivan-novakov/php-openid-connect-client
- jumbojett/openid-connect-php
Process control
- symfony
PCNTL
Static site generator
String
- behat/transliterator String transliterator
Variables visualization
- variables visualization Packagist
- sebastian/exporter
- symfony/var-dumper
Version number managing of Git-hosted PHP projects
- Packagist: version
- sebastian/version
Web Frameworks
- silex/silex based on symfony components https://packagist.org/search/?q=silex
- Slim: a micro framework for PHP (with ((Stack?)) Middleware support) slim/slim
- cicada/cicada based on symfony components
- yosymfony/httpserver
- react/espresso Silex wired with radioactive caffeine.
Web Applications
- miniflux.net Miniflux is a minimalist RSS reader
- kanboard.net Kanboard is a project management software that uses the Kanban methodology