Ecosyste.ms: Repos
An open API service providing repository metadata for many open source software ecosystems.
GitHub / zetacomponents / MvcTools
JSON API: https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zetacomponents%2FMvcTools
Stars: 9
Forks: 9
Open Issues: 0
License: None
Language: PHP
Repo Size: 5.64 MB
Dependencies:
291
Created: about 12 years ago
Updated: about 1 year ago
Last pushed: 9 months ago
Last synced: 1 day ago
Commit Stats
Commits: 145
Authors: 17
Mean commits per author: 8.53
Development Distribution Score: 0.386
More commit stats: https://commits.ecosyste.ms/hosts/GitHub/repositories/zetacomponents/MvcTools
Files
Dependencies
- phpunit/phpunit * development
- zetacomponents/unit-test * development
- zetacomponents/base ~1.8
- APersistentObject_tie-incouldbesuppliedtoeasilyrealizeCrud_ *
- Abeneficialside-effectrelatestocontroller-testing *
- Abstraction_ *
- Action *
- Actionsshouldbeabletocastanerrorspecifying ,atonce
- AgoodstartingpointtolearnmoreaboutMVCistheWikipediaarticle *
- AnEventLog_andMail_tie-inshouldbesuppliedbyanothercomponent. *
- Asnoneofthegivenerrorsismeanttobedisplayedtotheuserofthe *
- Atie-infortheTemplate_componentshouldbeprovidedwiththefirst *
- CSS ,gzipcontentandre
- Clarificationofterms *
- Componentintegration *
- Controller *
- Controllerscanprovideoneorseveralactions.Eachactionhasaspecific *
- Controllersprocessandrespondtoevents ,typicallyuseractions,andmay
- Controllersprovidetheactionsthatimplementthebusinesslogicofthe *
- Controllersreturnavaluethatcannotbesenddirectlytotheclient *
- Controllersrunwithasingleargument *
- Controllerswillhoweverreceivealltheinputdata ,besidestheabstracted
- Conventionisthekeyforthiscomponent.Eventhoughtie-inswillbesupplied *
- Conventions *
- Designrequirements *
- Dispatcher *
- Duringdebuggingitmustbepossibletopresenthelpfulerrormessages *
- Eachcontrollerimplementationcanprovidetwomethodsthatprovidefilter *
- Eachrequestrunsacontroller.Acontrollerreturnsanabstractvaluethat *
- End *
- Error-handling *
- Errorsmayoccurduringeachstepoftherequesthandling ,likethe
- Filtering *
- FilteringistheprocessofmodifyingtheezcMvcRequest ,ezcMvcResultand
- Filteringontheresultobjectthatcomesfromthecontroller *
- Fixture_ *
- Fixturesareobjectsthataresettoanarbitrarystatefortesting *
- Foreachofthesecomponentsatie-incomponentcouldconsideredtobe *
- Forexample ,theview
- HTTP-GETshouldnotbeallowedtoinvokechangesonthemodelbecausethis *
- HTTPRequestParser *
- However ,wecouldprovidedetailedinformationandpossiblysomehelper
- Ideas *
- Inaddition ,thiscomponentshouldneitherprovideanyautomationfacilities
- Integrationwithsuchcomponentscould *
- Introduction *
- Itislefttotheuseronhowtheinteractionwiththemodelhappens.There *
- Itistheprocessorresultofgeneralizationbyreducingdata ,typically
- Itreceivesoneabstractresultobject.Aview-handlerisresponsibleto *
- Itshouldallow *
- Itshouldalsoprovidearawrequestobject ,withprotocolspecificunparsed
- Layers *
- LocalVariables *
- MVC_ *
- MVCcomponentshouldbethatfarabstracted ,thatothercomponentscanbe
- Model *
- Model-View-Controller *
- Modernapplicationsoftenrequiretodealwithdifferentinputandoutput *
- MultilevelI *
- MvcTemplateTiein *
- Notethatifyoudon *
- Processesandrespondstoevents ,typicallyuseractions,andmayinvoke
- Protocoldependentroutersaresimplycalledfromthedispatcherandselectan *
- RegexpRouter *
- Renderstheactionintoaformsuitableforinteraction ,typicallyauser
- Request *
- RequestParser *
- RequestParsing *
- Requestedprocesstotestacontroller *
- Requestsshouldbeparsedbytherequestparser.Therequestparsersare *
- Response *
- Result *
- Router *
- Routers *
- Routersareresponsiblefor *
- Routersarethefirstlayerhitbyinputandthelastlayerthatprocesses *
- Routersmaybeaskedbyacontrollertore-routetherequesttoanother *
- RoutersmustalsoprovideamechanismtocreateURLsfromrequest-objects ,
- Routing *
- Shippedimplementations *
- Somefailuresshouldbereportedtotheadministratorinatechnicalmanner ,
- SpecialConsiderations *
- Summary *
- Targetandscope *
- Templatecomponentshouldbeprovided. *
- Testing *
- Testingacontrolleristhekeytoqualitydevelopment.Testingmanuallyeach *
- TheHTTPRequestParsershouldbeabletomakerequestobjectsfromanyHTTP *
- TheMvcToolscomponentshoulddistinguishcertainlayerstoallowusersto *
- TheRegexpRoutershouldallow *
- TheTemplate_Routerusesezt_filesfromtheTemplate_componentto *
- Theabstractresultofacontrolleractionthatcanbeusedbytheview *
- Thedatathatcomesinthroughanyprotocolpossiblefromtheclienttothe *
- Thedatathatissendfromtheservertotheclientthathasbeengenerated *
- Thedesigndocumentcontainsanexampledispatcherthatshowsthecontrol *
- ThedispatcherexecutethedifferentlayersofMVCinorder.Firstit *
- Thedomain-specificrepresentationoftheinformationthattheapplication *
- Thelaterapplicationconfigurationlayer *
- Theonlyclassesthatshouldbecommontoeveryprojectaretherequest *
- Therefore ,itshouldbepossibletouseabstractedinputandoutputformats,
- Therequest-objectcontainsalltherequestdata. *
- Therequestobjectisresponsibleofgeneratinganinputobject ,which
- Therequestparseristhefirstlayerinaction ,it
- Therouterisresponsibletoselectthecontrollertorunand *
- Therouterselectsthecontrollertorun.Therearetwotypesofrouters. *
- Thescopeofthisdocumentistodescribetherequirementsforacomponent *
- Theviewhandlerisresponsibleforrenderingoneresultobjectintoaproper *
- Theviewmanagerreceivestheresultobjectandtherequestobject *
- Thisdocumentdoesnotdescribethedesignofthenamedcomponent ,butonly
- ThisissimilartotheroutingsystemimplementedintheDjango_Python_ *
- Thissectionsummarizestherequirementsregardingthelaterfollowingdesign *
- Thoseerrorscannotbehandledbythecontroller ,becausetheyhappen
- Thosetwolayersuseonecontrollerperrequest.Theyhandlethe *
- Tie-incomponentsfortheUrl_andTree_componentsshouldbeprovided *
- TieInsforthisdefaultcontrollerusingtheExecution ,EventLog
- View *
- View-management *
- View-managerrole *
- Viewhandlers *
- Wecannotprovidethetestingenvironmentitself *
- Weshouldkeeptestingcapabilitiesfortheextensionstothiscomponentand *
- Wheresuitable ,designrelatedtopicswillbetouched,butadedicateddesign
- abstractinputobject. *
- accesstherawrequestdata. *
- actionandabstractstherequest *
- allowinghimtofixtheproblemortohandletheclient *
- allowsuserstoimplementtheirownmechanisms.Thefollowingcomponents *
- and *
- andcandecideonthebaseofbothofthemwhichviewhandlertouse. *
- andcharactersetencodings.Theobjectalsowillcontainrawprotocoldata *
- apersistentstoragemechanism *
- application *
- application-specificview-handlers ,
- application.Whereacontrollerdealswithmodules *
- appropriatecontroller.Protocolindependentroutersarecreatedthrougha *
- appropriatere-runningoftheroutershouldoccur. *
- aretwobasicoptions.Oneiswherethemodelisdirectlyusedinthe *
- bedefinedthroughinterfacesandonlyverybasicimplementationswillbe *
- bytheviewmanagerfromtheabstractresultobject. *
- cannotcoverallcontrollersmanuallyaftereachbugfix.Thesolutionis *
- chains.Thesefilterchainsarerunbefore-ontherequestobject-andafter *
- changesonthemodel. *
- chargesforshoppingcartitems *
- classes *
- classesforthetestingofapplicationsbuildonthiscomponent. *
- client-protocol ,sothatthecontrollerdoesn
- configfilesandconfiguringthepartsoftheMVCaccordingly *
- containsanewrequestobjectthatcanbepickedupbythedispatcherand *
- containsdatathatisnotspecifictotheprotocol *
- controller.Wherethecontrollerspecifiesaspecificresource ,anactionis
- controllerandmustthereforebeaccessiblefromanyaction. *
- controllercanleadtodisasters *
- controllers. *
- controllersandtheview-manager.Thisisrequiredforcreatingback-linksor *
- controllerswithonlytheprotocol-abstracteddatathattherequestobject *
- controllerthroughf.e.thePersistentObjectSession *
- controllerwithit *
- correctrenderingmodefortheoutputprotocol *
- createdinfuture. *
- data ,whereasHTTPPUTismeantformodifyingdata.
- datathatcomesinfromtherequest.It *
- differentpurposes.TheTemplatecomponentprovidesasyntax-lightlanguage *
- document. *
- documentisavailable ,definingAPIs,classesandthearchitecturalstructure
- documentnortheMvcToolscomponent. *
- doesnotspecificallymentionthedataaccesslayerbecauseitis *
- eZComponent *
- eZComponentsalreadyprovidesomecomponentsthatareusefulwhen *
- eachcomponentasindependentaspossibleandtorealizedependencies *
- easilyadjustandreplacecertainfunctionality.Therefore ,thefollowing
- easilycreatetheirown ,customimplementations.
- encapsulatedintheezcMvcRequestobject. *
- errormessages ,sotheapplicationdevelopermaydecidetosend
- extractallrelevantdataintotherequestobjectinaprotocolindependent *
- ezcMvcResponseobjects.FilteringintheezcMvcRequestobjectcanforexample *
- featuredimplementationoftheMVCarchitecture ,butshouldhelpusersto
- fill-column *
- filtering. *
- fixtureistheproceduretotestacontroller. *
- flow.Afewdiagramsarealsoavailablecontainingahighleveloverviewof *
- followingexamples *
- forexampleconvertcurrenciesandfilteringintheresponsecouldminimize *
- format. *
- fornon-programmerstodesigntheviews.Thereforeatie-inwiththe *
- framework. *
- fromtheview-handlerthatgeneratesXML *
- handlerthroughtheviewmanager. *
- havebeenidentifiedaspossibletie-ins *
- implementedatalaterstage.Thisshouldbekeptinmindwhendesigningthe *
- implementinganMVC.However ,onebasicgoalofeZComponentsistokeep
- importantwhiledesigningtheMvcToolscomponent. *
- inordertoretainonlyinformationwhichisusablebyanyrouterforany *
- installedthrough3rdpartycode. *
- interfacearchitecturepreventsthecontrollerfrombeingdependentonthe *
- interfaceelement.Multipleviewscanexistforasinglemodelfor *
- interfacewillnotaffectdatahandling. *
- intodedicatedobjects *
- invokechangesonthemodel.Inacase ,controllersrunanactionusinga
- isdeterminedbytheusedview-manager ,whichselectsaviewhandlersimilarly
- itintoaspecificresponse.Thislayeriscalledtheview-manager. *
- kindofresult ,butshouldonlyworkonabstractedrequestandresult
- kindsofapplicationsusingtheobject-orienteddesignparadigm.Thegoalof *
- linksinviewswithaspecificbaseURLinmind. *
- managertogeneratearesponse. *
- messages ,showorlogtheoccurrederror.Anerrorduringtheexecution
- mode *
- model. *
- noneoftheprotocol-specificdataisusedincasehewantsa *
- notexplicitlyneededbyit *
- object ,andtherequestandtheresultabstractions.Allotherclassesshould
- objectissendtotheview-manager ,whichisresponsibletoselectthe
- objects. *
- ofapotential *
- ofthecomponent. *
- ofthisdefaultcontrollerwillcausea *
- operateson.Domainlogicaddsmeaningtorawdata *
- outsideofit.Aconfigurabledefaultcontrollerwillbecalledforall *
- outworkonabstractobjectsonly. *
- parserstherequestthrougharequestparser ,thenfindtherouterthrough
- partandHTML ,PDF,ReST
- partofthe *
- passedtothecontroller. *
- phase. *
- processthatcanbecalledbytherouter.Anactionisanoperationona *
- protocol-abstractcontroller.Thisallowsprotocol-specificcontrollersto *
- protocol-independentcontrollers. *
- protocol-specificrequestparsertosetvariablesthesameway. *
- protocol. *
- protocoldependent ,andreturnarequestobject.Therequestobjectin
- protocolsandformats *
- provides.Ithandlesinputparsingandfiltering ,butdelegatesinput
- providingclassestoimplementaMVC_architectureforawebapplication. *
- purposes. *
- questioncontainsprotocol-abstractedinputsuchastheuseragent ,messageID
- re-encodeallthedifferentinputvariablesinadifferentcharacterset. *
- releaseofMvcTools. *
- renderacertainoutputformatforacertainprotocol.Theview-handlertouse *
- rendertheresponsebody. *
- replaceablebytheuser. *
- request ,encapsulatingallpossibledatainawayallowingother
- request-objectfixtureandassertingthattheresultmatchesanresult-object *
- requirementshavebeenspecified. *
- response.Onlyoneview-handlercanbeusedtogenerateacertainresponse. *
- result-objectafterbeingrun. *
- resultmocksandfixturesallowsstraight-forwardTDD. *
- resultobject ,oraninternalredirectresult.Theinternalredirectresult
- routermanager.Theresultofacontrolleractioncaneitherbeaabstract *
- secondpossibilityistodependonaserviceinterface.Thisserviceinterface *
- section *
- section. *
- server.Therequestdataconsistsofheaders ,variables,filesetcandis
- shippedwiththecomponent.Advancedimplementationscanbeaddedatalater *
- shouldbeshowntotheuser ,butthedevelopershouldbeabletohandle
- shouldbeusablewithanyoutputformatsandprotocols ,theresultobject.
- singleargument *
- singlevalue *
- so-calledrequestparser.Afterthecontrollerhasbeenrun ,theresult
- stage ,beprovidedviatie
- summarizestherequirementsforitasdiscussedonthedevelopermailinglist. *
- templateparseerror *
- test-automationinPHP *
- testeZComponentsthemselves. *
- thatmaybeusedtoaccessacertaincontrollerandactionwithacertain *
- theMvcToolscomponentistogiveusersabasisforsucharchitecturesfor *
- theactionexecutions-ontheresultobjecttoimplementapplicationspecific *
- theactiontocallonit.Tocreatetherequest-objectitrequiresthe *
- theapplicationsbuilduponitinmindduringthedesignandimplementation *
- thedifferentdesignparts. *
- theerrorsneedtobeprovided. *
- themgracefully. *
- thenusesthePersistentSessiontoquery ,andworkonthemodel.Thisservice
- theoperationtocallonthisresource.Asanexampletheresourcecouldbe *
- theoutput.Thatiswhyithandlesroutingrequeststotheappropriate *
- theroutermanager ,thecontrollerthroughtherouterandaslasttheview
- throughadifferentproperty. *
- throughso-calledtie-incomponents.Thereforethemechanismsrealizedinan *
- tiedinandprovideonlyverybasicimplementationsonitsown.Thisalso *
- toallowtheusageofothereZComponents ,alllayersshouldbeadjustableand
- toarouterselectingacontroller. *
- torealizerouters.Thedesignofthesecomponentsshouldbeconsidered *
- tothedeveloper ,butonaproductionsystemnoerrorsfromtheMVC
- twolayersabstractI *
- understoodtobeunderneathorencapsulatedbythemodel. *
- validationtothecontroller. *
- variables. *
- view-manageranddefinedparameters.Thismethodmustbeaccessiblefromthe *
- vim *
- way. *
- webapplicationswritteninPHP5.Thecomponentshallnotprovideafull- *
- whethertodayistheuser *
- wouldcauseaviolationofHTTPstandards.HTTPGETissolelyfor *