Version 7 (modified by 7 years ago) ( diff ) | ,
---|
- Recommandations and Norms
- IDE, editing code
- Packagist, Badges and Continuous Integration
- Package system
- PHP Libraries
- Asynchronous IO Programming
- Topic libraries
- Assertion
- CLI
- Comparator
- Diff
- Error handling
- Feed (RSS, Atom, ...)
- Git
- GitHub
- HTTP Clients
- Middlewares (#TODO to be melded with other section
- Openid Connect
- Process control
- SQL
- Static site generator
- String
- Variables visualization
- Version number managing of Git-hosted PHP projects
- Web Frameworks
- Web Applications
Recommandations and Norms
PHP Framework Interop Group
PHP Standards Recommendations
This needs to be updated!
- php-fig.org/psr
- psr Packagist
- psr implementation Packagist
- Debian: php-psr
- interop Packagist
- PSR-3 psr/log ? [[Image(...)]] [[Image(...)]] [[Image(...)]] providers
- PSR-7 psr/http-message ? [[Image(...)]] [[Image(...)]] providers
-
- zendframework/zend-diactoros (for comparison symfony/http-foundation )
- PSR-6 psr/cache ? [[Image(...)]] providers
PSR-14 psr/event-manager ? providers::
- bee4/events ? [[Image(...)]] providers
- PSR-11 psr/container ? [[Image(...)]] providers
-
- phossa2/di (for comparison symfony/dependency-injection )
- container-interop/container-interop ? [[Image(...)]] providers
-
- The top 3 are recommanded by:
- zendframework/zend-servicemanager
- xtreamwayz/pimple-container-interop (based on pimple/pimple )
- aura/di
- ...
- php-di/php-di
- league/container
- mouf/pimple-interop
- vaibhavpandeyvpz/katora Minimal service container implementing container-interop/container-interop interfaces.
- conformity/container Lean PSR11 compatible dependency injection container
- leemason/container Lean PSR11 compatible dependency injection container
- PSR-16 psr/simplecache ? [[Image(...)]] providers
- PSR-15 psr/middleware ? [[Image(...)]] providers
-
- [not yet implemented]
- zendframework/zend-expressive-router ? [[Image(...)]] dependents
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
Top packages
Top Rank
Top References
Top Monthly Download
Top Download
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
- hybridauth/hybridauth
- userguide
$ 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
The League of Extraordinary Packages
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. !! I had not been able to navigate ZEnd doc website!
- 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-di
zend-diactoros
PSR HTTP Message implementations (New in ZF3)
- zendframework/zend-diactoros
- https://admin.fedoraproject.org/pkgdb/package/rpms/php-zendframework-zend-diactoros/
- Drupal API
zend-expressive
Develop PSR-7 middleware applications in minutes! (New in ZF3)
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
- 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
- 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
- zendframework/zendsearch
- Looks abandonned
- 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 Krishna Shasankar Packt 2013
- php-zend-search
- search-bundle Packagist
zf1/zend-search-lucene
- zf1/zend-search-lucene
- https://framework.zend.com/manual/1.12/en/zend.search.lucene.html fr
- Day 17: Search
- zendframework
zend-servicemanager
Packages
Asynchronous IO Programming
- Concurrent_computing, Concurrent_object-oriented_programming
- The promise of asynchronous PHP Wim Godden 2015
General libraries
async-interop PHP Asynchronous Interoperability Group
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]
- Async PHP with React Jeremy Mikola 2015
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
- workerman/workerman An asynchronous event driven PHP framework for easily building fast, scalable network applications.
Icicle
- Getting Started with Icicle : Write asynchronous code in PHP with synchronous coding techniques using promises and coroutines 2015
- Build a Superfast PHP Server in Minutes with Icicle Christopher Pitt 2015
ReactiveX
Event
- Event_(computing), Event-driven_programming
- Event-Driven Programming: Introduction, Tutorial, History
- Packagist: event
Event Dispatcher (not necessarily IO)
- Mediator_pattern (# to be moved...)
- Is the use of the mediator pattern recommend?
- Design_Patterns
- [Software_design_pattern]
- evenement/evenement
- event dispatcher mediator Google
- Writing Extensible Code Using Event Dispatcher YouTube Speaker Deck
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
- webmozart/assert Assertions to validate method input/output with nice error messages
BDD Assertion
- BDD assertion Packagist
- jacobstr/esperance
- esperance/esperance
- codeception/verify BDD assertion library for PHPUnit
CLI
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 (#TODO to be melded with other section
- middleware Packagist
- On HTTP, Middleware, and PSR-7 Matthew Weier O'Phinney 2015
- HttpKernel middlewares 2013
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
- php-middleware (GitHub)
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
SQL
DBAL
- Has a weakness preventing to use foreign key constraints in Sqlite (a recent improvement of Sqlite), (at least in version 2.5.6 - 2.5.7).
- SQLite Foreign Key Support
- Solutions are been considered!
- Once it will be working, Debian version still will have to wait for update. php-doctrine-dbal
- While waiting to something integrated into Dbal, the following code can be executed just after connection:
$pdo->exec("PRAGMA foreign_keys = ON;");
- This can be done in a PostConnect event
Features
- Database insert seems better handled by (dbal 2.5.8)
$conn->insert($TaxoTable->getName(), ['term' => 'dbal']);
than by
$queryBuilder = $conn->createQueryBuilder(); $queryBuilder ->insert($UrlTable->getName()) ->values(['url' => "xyz"]) ; echo $queryBuilder->getSQL() . "<br>\n"; $conn->executeUpdate($queryBuilder->getSQL()); // $queryBuilder->execute(); // Does not work because the value is not between "" in the produced SQL.
- The schema manager creates FOREIGN KEY CONSTRAINTs with ALTER TABLE. (This seems to be solved in 2.5.8)
- This allows to create the associated index before the foreign key constraint. This can be useful to create a named index before it is already automatically created by some databases.
- It is not sure if it can work with sqlite. It seems it should not. SQL As Understood By SQLite: ALTER TABLE foreign-key-clause
- Has its own event manager (version 2.5.7)
Static site generator
String
- behat/transliterator String transliterator
Timer, stopwatch (also on Symfony page)
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