Synd – Historik

Synd är ett ramverk skrivet i PHP som främst används för att bygga dynamiska webbplatser. Huvudutvecklare är Mikael Johansson.

Synd har testats på Linux/Apache2 med PHP 4.3+ eller 5.0. Databas
drivrutiner finns för Oracle, MySQL och PostgreSQL. Klustret drivrutinen ger lastbalansering och transparent failover.

Några av funktionerna är följande:
– Modulär/Hooks-baserat API
– Objekt->RDBMS (ActiveRecord) mappningslager.
– Mallsystem med kataloger för överstyrning av skinning support. Modeller för noder och typer är Model-View-Controller som ett objekt kan återges med och ärvs vilket gör det möjligt att använda objektorienterade tekniker som polymorfism.
Upptäckt av mobiltelefoner och handdatorer med överordnad mall kataloger för rendering för flera mål.
– Integrerad sökmotor med stöd för flera index-backends.
För indexering av termer används en vanlig databaserad backend och BM25 viktningsalgoritm. Förfrågningsanalysatorn hanterar alla typer av boolska frågor.
MySQL:s fulltextindex är både snabba och möjliggör betygsättning matchningar. Boolska frågor stöds.
Wrappers för Xapian tillhandahålls. Xapian är en öppen källkod probabilistiskt bibliotek för informationssökning skrivet i C++ och lämpar sig för stora samlingar i storleksordningen gigabyte(s).
– Stöd för transaktioner. Noder som sträcker sig över flera tabeller är alltid synkroniserade atomiskt. Databasoberoende metoder för automatisk eller manuellt utföra rollbacks vid fel finns tillgängliga.
– Klusterlagringssystem med replikering, failover och självläkande funktioner. Uppladdade filer replikeras över ett användargränssnitt med ett definierat antal lagringsnoder.
– Användardefinierade PHP-tillägg kompileras och laddas vid behov.
– Offline Task API för att utföra tidskrävande operationer som t.ex.
nedskalning av mp3-filer och filmer för att strömma till användarna.
– Apache mod_rewrite-stöd för att möjliggöra rena, sökmotor vänliga uri:er
– Ändring av bildstorlek och lagring av bilder i caching.
– Stöd för HtmlFilter och HtmlTidy som tar bort illasinnade JavaScript- och
fixar trasig HTML i data som användaren skickat in.
– Omfattande enhetstester med hjälp av PEAR::PHPUnit.
– Autogenererad dokumentation med hjälp av PEAR::PhpDocumentor.
– Stöd för Pingback via mod_xmlrpc, stöd för mottagande av trackback.
– Implementering av JavaScript XML-RPC
– Oracle Calendar-tillägg och OO-wrapper

Synd distribueras under GNU General Public License – se medföljande LICENSE-filen för mer information. Kommersiell icke-GPL licenser finns tillgängliga för användare som föredrar att inte begränsas av villkoren i GPL.

Moduler

Moduler kan slås på/av via konfigurationsfilen, lazy loading stöds.
Några av modulerna:
– Modul för spårning av ärenden och projekt, med bland annat följande funktioner
underprojekt, nyckelord, underfrågor (stöd för 1:a och 2:a raden), e-post.
integration, tidsloggning och rapportering av servicenivåer.
– Inventeringsmodul som integreras med ärendeuppföljningen för att hantera följande
reparations- och ersättningsfrågor. En Windows- (C# .NET-tjänst) och en
Unix (skalskript) kompatibla programvaruagent, som körs på
klientdatorer, automatiserar distribution och underhåll av inventarier.
– Cachelagringsmodul i flera nivåer med stöd för minne, disk och distribuerade cache-system. Objekt och mallar/skriptutgångar kan lagras i cacheminnet med invalideringskallelser. Cachelagring kan ske med lastkänslighet för att hantera toppar på ett elegant sätt.
– Stöd för XML-RPC och SOAP som gör det möjligt att åberopa fjärrmetoder på alla ramobjekt
– LOB-lagringsmoduler som möjliggör en 3-nivåuppsättning för att hantera uppladdade
filer och andra LOB:er. Lagringsklienter talar med spårare som i som i sin tur ger tillgång till en uppsättning lagringsnoder. Kommunikation sker helt och hållet via HTTP med XML-RPC eller SOAP för interna meddelanden. Endast spårarna behöver tillgång till en delad (helst klustrad) databas, klient- och backendmoduler är fristående. Används tillsammans med Apache mod_auth_token för tidsbegränsad användning tokenbaserad autentisering för att förhindra obehörig åtkomst eller deep-linking.
– Modulen för rollbaserad åtkomstkontroll (RBAC) möjliggör åtkomstkontroll på användar-, grupp- och rollbasis.
– Logg- och watchdogmodul som loggar program- och HTTP-fel med miljö, sammanhang och stacktrace.
– SyncML-modul för synkronisering av problem och annat anpassat innehåll med mobila enheter som handdatorer eller mobiltelefoner.
– Modul för inlärningshantering med kursböcker, frågesporter och tester.
Eleverna arbetar självständigt och insamlad statistik kan ses av eleverna själva och deras lärare.
– Med hjälp av omröstningsmodulen kan användarna utforma skräddarsydda omröstningar online,
välja mellan många olika typer av frågor, och statistik kan visas och exporteras till Excel för bearbetning.
– HTML RichText editor för IE och Mozilla/Gecko (SyndRTE) med stöd för att klistra in bilder (uppladdning i bakgrunden)
– Översättningskrokar och modul för filtrering av innehåll och översätta gränssnittet baserat på förhandlad webbläsare eller användare eller av webbläsaren eller av användaren.
– Automatisk indexering och sökning av noder med hjälp av ovan nämnda indexeringsstrategier
– Meddelandemodul med stöd för GSM-SMS-meddelanden och direktmeddelanden meddelanden mellan användare.
– Flash-baserad mp3-spelare för att strömma ljud till användarna. Spelare laddas i en separat ram så att användarna kan surfa på webbplatsen och ställa sig i kö till ytterligare spår till spellistan medan ljudet spelas upp.