![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 125 Pomógł: 7 Dołączył: 27.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
pomyślałem, że podziele się klockami w PHP z których korzystam w różnych projektach. Projekt nazywa się PHP Commons i jest to zbiór luźnych bibliotek, które na co dzień upraszczają mi życie podczas developerki. Część z nich powstała bo kod oferowany np: w zendzie czy symfony nie spełniał moich oczekiwań co do chociażby elastyczności. Orginalne repozytorium ma już kilka lat, najnowszy branch nazywa się php_commons-4 i powstaje powoli zgodnie z aktualnymi potrzebami, refaktoring i dopisywanie nowych kawałków kodu. Od niedawna z niektórych kawałków korzysta znajomy deweloper, i skoro on jest z tego zadowolony to może komuś jeszcze się to przyda. Projekt jest dostępny na githubie: https://github.com/cepa/php_commons-4 Jest on zintegrowany z moim lokalnym SVN'em, z którego merguje stabilne zmiany do githuba. Nad kontrolą jakości czuwa Jenkins, który testuje kod na następujących konfiguracjach: - PHP 5.3.x, PHP 5.4.x - MySQL 5.1.x, MySQL 5.5.x - PostgreSQL 8.4.x, PostgreSQL 9.1 Dodatkowo część testów zawiera: Memcache, APC, Redis, Cassandra, Gearman Aktualne pokrycie kodu to ok 87% (coverage). Ficzery: - Commons/Application - Abstrakcja klasy aplikacji (Web, CLI, itp) - Commons/Autoloader - Prosty autoloader zgodny z SPL i composerem - Commons/Buffer - Wrapper na output buffer - Commons/Callback - Wrapper na wszystko co jest callable, funkcje, metody, closures - Commons/Config - Biblioteka do konfiguracj z adapterami do Array, XML - Commons/Console - Szkielet konsolowej aplikacji do uruchamiania tasków - Commons/Container - Abstrakcyjne kontenery - Commons/Curl - Wrapper do curla - Commons/Entity - Biblioteka lekkich encji - Commons/Event - Programowanie zdarzeniowe - Commons/Filter - Baza dla filtrów - Commons/Http - Narzędzia do obsługi HTTP - Commons/Json - Biblioteka do jsona - Commons/KeyMap - Abstrakcyjny rozproszony kontener do łączenia kluczy w keystore - Commons/KeyStore - Implementacje keystore (Session, APC, Memcache) - Commons/Light - Mini frejmłork MVC - Commons/Log - Biblioteka do logowania (strumień, syslog) - Commons/Migration - Biblioteka do migracji - Commons/Moo - Mikroframework oparty o closures, inspirowany Sintatra z Ruby - Commons/Plugin - Baza dla pluginów - Commons/Process - Narzędzie do uruchamiania procesów i przechwytywania wyjścia - Commons/Sql - Implementacja SQL z róznymi adapterami, wspiera replikację master-slave, zawiera prosty ORM i Query Builder do składania zapytań - Commons/Template - Baza dla "szablonów" - Commons/Timer - Timer do benchmarków - Commons/Utils - Inne narzędzia - Commons/Validator - Baza dla validatorów - Commons/Xml - Biblioteka XML Przykłady użycia znajdują są tutaj: https://github.com/cepa/php_commons-4/tree/master/examples Nie jest tego dużo ale kod rozwija się z dnia na dzień i powoli dorzucam reszte klocków więc będzie tego sporo więcej w najbliższych dniach. Z ciekawszych wynalazków: Query Builder: https://github.com/cepa/php_commons-4/blob/...e_sql_query.php Repozytorium lekkich encji (mogą być zapisywane w dowolnej warstwie persistent ktora implementuje interfejs): https://github.com/cepa/php_commons-4/blob/...le_sql_repo.php MOO frejmłork: https://github.com/cepa/php_commons-4/blob/...bsite/index.php Na dniach będzie: - implementacje keystore dla Apache Cassandra, MongoDB, Redis - biblioteka do programowania rozproszonego z urzyciem Gearmana - biblioteka do przetwarzania obrazków Zachęcam do przejżenia kodu i prosze o opinie i konstruktywną krytykę. Projekt jest otwarty, licencja BSD, jakby ktoś był zainteresowany użyciem lub dodaniem czegoś od siebie to walić na priv. -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 18:05 |