Ecosyste.ms: Repos
An open API service providing repository metadata for many open source software ecosystems.
GitHub / alafon / ez5tutorial
eZ Publish 5 Tutorial
JSON API: https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alafon%2Fez5tutorial
Stars: 0
Forks: 0
Open Issues: 0
License: None
Language: JavaScript
Repo Size: 78.6 MB
Dependencies:
1,429
Created: almost 11 years ago
Updated: over 2 years ago
Last pushed: about 11 years ago
Last synced: 27 days ago
Files
Loading...
Readme
Loading...
Dependencies
- APIofthebackendclassesstillneedapossibilitytoprovidesuchdead *
- Adeveloperintegratingwebdavusingthiscomponentmaywanttousewebdavasa *
- Amajorproblemtobesolvedbythiscomponentis ,thatmostimplementationsof
- Authentication *
- Authenticationiskeymechanisminwebdav ,especiallywhenitcomesto
- Authorization *
- Clients *
- Collection *
- CollectionsProtocol *
- CommonWebDAVterms *
- ControlProtocol *
- Description *
- Dispatching *
- End *
- Everyonewithwriteaccesstotheressourcemaystillchangetheressource *
- ExclusiveLocks *
- Extensions *
- Formats *
- Inthefirstiterationofthecomponentwewillimplement *
- Introduction *
- Itshouldbeuptothestoragebackendtoproperlyimplementthestorageof *
- LocalVariables *
- Locking *
- Metadata *
- Optionally *
- OptionallyaezcAuthenticationTieinmayprovideotherauthenticationbackends *
- OtherwebdavrelatedRFCs *
- PerhapsconsiderextensionsoftheWebdavprotocol ,likeversioningandVCS
- Pricipal *
- ProtocolfortheWorldWideWeb *
- RFC ,whichispossiblethroughcostomorpredefindeproperties.Thestorageof
- ReferenceResources *
- Requirements *
- Sharedlock *
- SpecialConsiderations *
- Terms *
- Thebackendwillhandletheread *
- Thecomponentshouldbeflexibleenoughtoeasilyaddsupportforother *
- Thedefault ,RFCcompliant,implementationmuststillbeavailableandcanbe
- Thefirstversionofthecomponentshouldsupportafilesystemasbackendand *
- Thepurposeofthiscomponentisactingasawebdavserver ,letclients
- ThereforetheWebdavcomponentshouldonlybecapableofusingnon-interactive *
- Versioning *
- WebDAVclientsviolatetheRFC ,eachinadifferentway.Thecomponentneedsto
- Webdavsupportsanykindofmetadatainadditiontothedatarequiredbythe *
- Wewillnotsupportwebdavextensionslikedistributedauthoringand *
- Wewillsupportexclusiveandsharedlocksdirectlyintheserver ,including
- abstractfromtheseviolationandtomakeiteasytosupportnewclients.On *
- asthereare *
- authenticiationmethods. *
- authorizeseveryusertoconnectandreadthecontents. *
- backendsistaskofthewebserver ,becauseitiscapableofdispatching
- basedsharedlocks ,orexclusivelockmechanisms.
- beforeperforminganyfurtherchange. *
- betweeninteractiveauthenticationmechanism *
- denytheaccess ,ifrequired.
- directlyinthefileheaders. *
- download ,uploadandmodifyfilesfromvarioussources.
- eZcomponent *
- eachplatformatleastoneclientshouldbesupportedintheinitialrelease ,
- extensionsformisbehavingclients. *
- filesystembackend.Ansolidabstractionofbothtiersistheprimarygoalof *
- fill-column *
- frontendforseveraltypesofdata.ThedispatchingofURLstodifferent *
- generationofuniquelocktokensandlocktimeouts.Theserverwillstorethe *
- locking.Alockpersitsonaperprincipalbasis ,sothateachuseris
- lockstateinacustomdeadpropertyreseveredforthis.Thebackendmay *
- makeiteasytowriteowncustombackendsforthedatastorageofthe *
- mechanismsisrequired ,becausenoteverywebdavclientsupportsHTML.
- mindduringthedesignphase. *
- misbehavingclientslater ,andtoeasilyaddotherdatasourcesthenthe
- mode *
- notbepartofthiscomponentinanyway. *
- orcollection.Thesharedlockisjustusedasanindicator ,thatthe
- overwritethelockingcapabilitiesoftheserver ,toimplementcustomgroup
- performasawebdavserverforonesinglebackend.Thereforedispatchingwill *
- properties *
- propertiesandtoreactonpropertiesdefinedbytheclient. *
- requestsbasedonaURL *
- requiredtoidentifyhimself.Thedefaultauthenticationmechanismjust *
- ressourceisinusebyanotherpersonandthatcommunicationisrequired *
- support ,tobeeasilyintegratedlater.
- testedusingcadaver ,themoststandardcompliancewebdavclientavailable.
- thedocuments ,orspecialfilemechanismslike
- thesepropertiesneedstoimplementedbytheserver.Thepredefinedproperties ,
- thiscomponent. *
- thisdata.Forexample ,thefilesystembackendmayuseXMLfilesattachedto
- versioningdefinedin *
- vim *
- webdavserver.Imaginablearedatabasebackends ,FTP
- whichmaydenytheconnectiontothewebdavserver.Apossibilitytodistinct *
ez/ezpublish_legacy/composer.json
packagist
- php >=5.3.3
- doctrine/cache 1.* development
- doctrine/lexer 1.*
- php >=5.3.2
- zetacomponents/unit-test * development
- zetacomponents/base *
- zetacomponents/unit-test * development
- zetacomponents/base *
- zetacomponents/unit-test * development
- zetacomponents/base *
- zetacomponents/unit-test * development
- zetacomponents/base *
- Aspracticallyallusersworkwiththeadministrationinterfaceinmodern *
- ContentStructureMenuImprovements *
- Fromtheexperiencewithourcustomersandtheirprojects ,especiallythose
- Preface *
- Proposedsolution *
- Thisdynamiccontentstructuremenushouldbeusedintheadministration *
- administratorofasiteshouldbeabletoswitchbetweenoriginalandthenew *
- aswellandauserhastowaitforlongtimetogetapagecontainingthetree *
- biggerones ,wecansaythatthecontentstructuremenuintheadministration
- browserssupportingXMLHTTPRequestobjects *
- clickingonanunfoldicon *
- containonlythenecessaryinformationsothatitwouldminimizethe *
- contains *
- dynamicimplementationofthecontentstructuremenu. *
- fetchingwholestructureofthesite *
- interfaceisnotimplementedintheoptimalway.Anychangeonasitewhich *
- leadstotheremovalofcache-blocksremovesthecachedcontentofthetreemenu *
- listsofchildrenofagivennodeonfly ,astheyareneeded
- menu.Thisiscausedbyregenerating *
- reactiontime *
- requirements *
- site *
- siteaccessesonly.Theoldimplementationshouldnotberemovedandan *
- transferredforallrequeststothe *
- transfersize *
- wewanttoaddimplementationforthetreemenuusingthistechniquetoget *
- 978-824-73-0904-6 *
- Afterconvertinganattribute ,scriptmustensurethat
- AnISBN-13numbertypicallylookslike *
- AscriptshouldbemadetoconvertISBN-10toISBN-13 *
- Asstatedpreviouslyinthisspec ,ISBN
- AutoconvertingfromISBN-10toISBN-13 *
- CLASSIDandATTRIBUTEIDmaybeeitherbenumericnumberorattributeidentifier *
- ChangestotheISBNdatatypeontheobjectlevel *
- ChangetotheISBNdatatypeontheclasslevel *
- Currentimplementationacceptshyphenseverywhere.Thisshouldbechanged. *
- Derivingtheregistrationgroupandinternalstructure *
- Documentationissues *
- DocumentationofISBN-13datatypemustinformabout *
- Documentationoftheconvert2isbn13.phpneedstobewritten *
- Eachregistrationgroupelementbelongstoacountryorareaandmayhavetheir *
- EntringISBN-13valueswithorwithouthyphens *
- Forbackwardscompatibility ,thisshouldalsowork
- Forinstance *
- Fortherecord *
- ISBN-10format ,thisscriptsneedstoberun.
- ISBN-13improvements *
- ISBN-13numberbothwithandwithouthyphensfromatemplate. *
- ISBN-13numbersstoredindatabase *
- ISBN978-82-573-0904-6 *
- ISBNvaluesforallversionsoftheobjectshouldbeconverted.Thiswill *
- If--all-classesisgiven ,allISBNattributesindatabasewillbeconverted
- If--attribute-idisgiven ,thatattributewillbeconvertedtoISBN
- If--forceisgiven ,attributewillbeconvertedeventhough
- Ifboth--class-idand--attribute-idisgiven ,thescriptshouldcheckthat
- Ifonly--attribute-idisgivenandthisisgivenasidentfier *
- Ifonly--class-idparamterisgiven ,allISBNattributesinthatclasswillbe
- IfthescriptisrunonaattributewhichisalreadyconvertedtoISBN-13 ,it
- IfuserentersanISBNnumberinISBN-10formatAND *
- Ifyouenablethe *
- Ifyourunthescriptandtrytoconvertadatatypewhere *
- Incurrentimplementation ,ISBN
- InternationalEdition.pdf *
- Placementofhyphens *
- PleasenotthatthereisnoscripttoconvertISBN-13numbersbacktoISBN-10. *
- ScripttoconvertISBN-10datatoISBN-13 *
- StoringtheISBN-13numberwithouthyphensorwithhyphensatincorrect *
- ThePrefixelementhaveafixedlengthof3digits ,whiletheCheckdigithave
- Thealgoritmforfindingtheelementlengthsandtoplacethehyphensare *
- Thedifferentrangesneedtobestoredinordertocalculatethecorrect *
- Thehyphensseparatesthedifferentfields *
- Thenumbershouldbestoredinthedatabasewiththehyphensatthecorrect *
- Thescriptshouldnotcreatenewversionsoftheobjectsitalters.Instead ,
- Thisisconsideredano-issuessinceISBN-10shouldnotbeusedanymore ,
- Thisneedtobecalculatedbasedonthedistributionofrangeseachregionhas. *
- ThisspesificationaddressescertainlimitationsintheISBN-13implemenation *
- ThistemplatecodeshoulddisplaytheISBN-13numberwithhyphens *
- ThistemplatecodeshoulddisplaytheISBN-13numberwithouthyphens *
- ViewingISBN-13numberswithorwithouthyphens *
- WhenaddingnewISBNdatatypestoaclass ,
- WhenenteringISBN-13numbers ,usermaychooseifhewantstoincludethe
- accessiblefromthesetupasasettingforallISBNdatatypes. *
- accordingtointernationalstandards. *
- afixedlengthof1digit.Theotherelementsmayvaryinlength. *
- alldatabacktoISBN-10format *
- andshouldbecheckedonaregularbasiswiththeInternationalISBNAgencyand *
- attribute-idistruelyaattributeintheclassspesifiedbyclass-id. *
- bydefault *
- consistently. *
- convert2isbn13.php *
- converted. *
- eZPublishdon *
- enabledfortheattributeattheclasslevel. *
- ensurethatallISBNvaluesinthedatabaseisstoredcorrectlyand *
- executionunlessthe *
- fortheattribute ,thesystemshouldautomaticlyconvertittoISBN
- hyphensinthedatabase.Howeveritmustbepossibleandconvenienttoviewthe *
- hyphensornot.Thesystemshouldautomaticallycorrectmisplacedhyphens *
- identifierdoesnotexistsinthesystem. *
- implemenationbutsuchimprovementsarenotevaluatedandaddressedinthis *
- ineZPublish.SomeimproventscouldalsobeappliedtotheISBN-10 *
- isnotenabledfortheattribute.Scriptwillthenenable *
- notenabled ,thescriptshouldwarnaboutthis.Thescriptshouldalsoabort
- number ,thescriptshouldensurethatmultipleattributeswiththesame
- ownrulesfortheinternalstructureforRegistrantandPublicationelement. *
- place. *
- placementtoeachhyphensintheinternalstructure.Therangesmaybeupdated *
- possitionsshouldNOThappend. *
- shouldensurethathyphensarestoredatthecorrectplace.Earlierversionsof *
- specificationsinceISBN-10nowisobseletedbytheindustry. *
- specifiedhere *
- the *
- theattribute *
- updatedineZPublish.Thedifferentrangeswillbestoredinthedatabaseand *
- usersusingISBN-13areupgradingtheireZPublishinstallation. *
- wayasuserenteredthem *
- withoutanywarnings. *
- Acontentobjectcanhaveonlyoneobjectstateofthesamegroupatthesame *
- ContentObjectStates *
- Eachcontentobjectstatebelongstoone *
- Experiencewithcustomerprojectshasproventhatusingthecurrentworkflow *
- Features *
- Itshouldalsobepossibletodefinenewtemplateoverridesforcontentobjects *
- Preface *
- Thenamesanddescriptionsoftheobjectstatesshouldbetranslatableinthe *
- Thesestateswillalsobeconnectedtothesystemofrolesandpolicies ,in
- Wewanttorelatecontentobjectstooneormultiple *
- administrationinterface. *
- andtodisallowthisinotherstates.Separatepolicieswillalsobeprovided *
- inaspecificstate. *
- mostlyfordisplayingpurposes.Thefirstobjectstateinthegroupisthedefault *
- needstobeanalternativeforthis ,whichwewillcall
- one. *
- ordertoallowcertainuserstoread ,editorremovecontentincertainstates
- systemisoftentoocomplextohandlesimplestatetransitionsofcontent.There *
- time.Statetransitionsareonlyallowedbetweenstatesofthesamegroup. *
- togroupthemlogically.Objectstatescanbeorderedinsidetheirgroup ,
- transitionofonecontentobjectstatetoanother. *
- whichallowsuserstoassignaspecificstatetoanobject ,andtoperformthe
- Alsothereshouldbepossibletodisableexternalhelpbysettingif *
- Anoteonbrowsercompatibility *
- Aoverviewofusertaskneedadashboard ,whereshecanfollowhereown
- Bothinoverwhelmingtheuserwithoptionstoclick ,tomuchscreenreal
- Communitypreface *
- Could *
- Currentadmindesign ,bothinitsstylingandinitsUIhasbeenincreasingly
- Extendabilityisdefinedaspossibilityforextensionstoextendtheadmininterface *
- Features *
- ForCSSthiswillmeanwe *
- Forslowness ,thisisfirstandforemostnumberofclicksandpagerefreshesyouhave
- Fortheoutdatedpart ,thiscomesdowntooverstyleddesigncomparedtootheradmininterfaces.
- IE6onafunctionallevel.Meaningallfunctionsshouldworkasexpectedinit ,but
- Identifiedtasks *
- Ifso ,thereshouldbeguidelinesonrequirementsforthesehelppages
- Inprioritizedorderfor4.3 *
- Makingtheinterfacemoreintuitiveinvolvesimprovingusabilityandremoving *
- OR *
- Overallthereisaneedtoupdatetheadmininterfacetoadheremorecloselytohowweb *
- Preface *
- Should *
- Somemembersinourcommunityhaswrittensomearticlesonwhattheywouldliketo *
- Thisshouldalsomakeiteasiertooverridesectionsofpagelayoutlikewebin1.4 *
- Thusmodules *
- WefollowtheYUIA-GradeBrowserSupportChart ,meaningwefullysupportallmajor
- Wishful *
- amountandsizeforadmingraphic *
- andaddnode *
- andfastertobrowseformediafiles *
- andproject.ez.nocouldprovidesuchainterfaceforprojects. *
- applicationshaveevolvedwiththeimprovedusability ,simplifiedinterfaces,ajaxified
- aroundfor11yearsandhavebeenimplementedinallotherA-Gradebrowsers. *
- asoptionsonselectiondatatype *
- betosupportInternetExplorer6 *
- browsers.However ,weall
- content ,approvalandothertasksshemightdoonaregularbasis.
- displayedinnodeviewornot *
- eZPublish *
- enhancementsifitrequiresadditionalcodingorworkaroundtosupportIE6. *
- extensionstoextendthesameparts. *
- featuresandcleandesignsthatusersarebecomingusedtointheweb2.0era. *
- forotherfeaturesofthisdocument *
- foruseastranslatabledefaultstringonstring *
- inmenu.ini *
- itishostedexternally ,maybeprovideawhitelistofdomainsyouallow
- mightdecidetodegradegracefullyandnotenablekeyJavaScript *
- minimizeableblockbeneathtopblock. *
- onesthatdiffer *
- onforinstancecontent *
- orusingafixedpositionbarthatalwaysstaysonscreen. *
- rightmenuandleftmenuitems. *
- seechangedintheAdmininterface ,herearesomeofthem
- sizeselectoronleftmenu ,aswellasthehide
- specificattributestogether *
- specifichelpprview. *
- stylingandaoutdatedstyling. *
- subitemsandactionsonsubitemspane. *
- subjecttocriticismforbeingoutdated ,slow,impossibletoextendcleanly,
- textforeditors *
- thathaveasetofcommonattributesandoverloadthe *
- togotruetoaccomplishsomekeytasks.Identifiedkeytasksare *
- tolinktoforhelp. *
- unintuitiveandalackofacentralplacetogetaoverviewofallthetaskauser *
- useashelptextforeditors *
- wewillnotstrivetoremainpixelperfectattheestheticlevel.Inadditionwe *
- withouthavingtooverridetemplatefiles ,asitthenwouldbeimpossibleforseveral
- Besidescalabilitythereishighdemandforbetterapproval ,moderation,
- Could *
- Features *
- Inprioritizedorderfor4.3 *
- Might *
- Preface *
- Should *
- Terms *
- aretohighforusergeneratedcontent *
- eZPublish *
- eZPublishalreadyhaspossibilitytohavecommentsandhassincethe *
- notpreviouslymoderated *
- optimalforscalabilityasoverheadofnode *
- probjectattribute *
- reportingandspamhandlingofUGC. *
- start.Butforlargecustomersusingthecontentstructureisnot *
- subscription =Arelationbetweensubscriberandthecontentshesubscribesto
- system *
- time ,userid,objectid,objectattributeid,language
- typesofUGC. *
- userisnotloggedinandshechecksa *
- 1.Enduser *
- 1.Thelistshouldbeconfigurablewithregardstonumberofitemsinthelistsetc.followingthenormaleZPublishstandards. *
- 1.Theobjecthehasdeletedmaintainingthestructure *
- 2.Adminuser *
- 2.Thelistshouldcontain *
- 2.Youshouldbeabletomarkmorethanoneobjecttorestore. *
- 3.Itshouldbepossibletosortthelistby *
- 3.Whenyourestoreanobjectyoushouldhavetheoptiontorestoreitusingtheoldnode_idsoyoudonothavetoalterexistingtemplates. *
- 9.Itshouldbepossibletosortthelistby *
- Adminuserrequirements *
- Enduserrequirements *
- Personalwastebasket *
- Preface *
- Thefunctionalityofthewastebasketmustbedifferentperusertype *
- Thereforeweneedtohaveapersonalwastebasketimplemented. *
- Thewastebasketfortheadminusershouldhavethefollowingcharacteristics *
- Thewastebasketshouldhavethefollowingcharacteristics *
- WhentheAdminuseropensthewastebasketheshouldsee *
- Whentheenduseropensthewastebasketheshouldsee *
- a. *
- a.Objectname *
- a.Ownername *
- b. *
- b.Deleteddate *
- b.Objectname *
- c. *
- c.Createddate *
- c.Deleteddate *
- d. *
- d.Createddate *
- d.Creator *
- d.Ifpossiblethenameofthecreatoroftheobject *
- e. *
- e.Ifpossiblethenameofthecreatoroftheobject *
- e.Size *
- e.Thesizeoftheobject *
- f. *
- f.Thesizeoftheobject *
- Aboutauthentication *
- Agenericfilterwhichisusedtogrouptwoormorefilters.Dependingon *
- Alistoffilterswhicharetobesupportedintheinitialreleaseofthe *
- Authentication *
- Authenticationexamples *
- Authenticationfilters *
- Authenticationisaprocessofverifyingtheidentityofanuserandenabling *
- Authenticationprocess *
- Authenticationstages.ValidationandAuthorizationwillbeimplementedata *
- Authorization *
- CAPTCHA *
- Checkifuserhaspermissionsforthecurrentcontext *
- Checkifuserisvalidforthecurrentcontext *
- Checkusercredentialswithasecurityprovider *
- Confirmationticket *
- Continue *
- Database *
- DatabaseSchemacomponents. *
- Designgoals *
- Duetothenatureofthiscomponent ,caremustbetakentoensuresecure
- End *
- Error *
- Example *
- Extensionsneededfortheauthentication *
- Fetchtheusercredentials *
- Forexample *
- Group *
- Groupingoffilters *
- Htpasswdfile *
- Identification *
- IfaSessionobjectisspecified ,thenitwillbecheckedbeforethe
- InmanywayssimilarwithOpenID ,inthatusersloginonlyonce.Info
- Introduction *
- LDAP *
- LocalVariables *
- Login *
- NO *
- Notaproperauthentication ,itisjustawaytosecurecertainfeaturesof
- OpendID *
- PHPrequirements *
- Protocolforqueryingandupdatingdirectoryservices.Compatiblewith *
- Requirements *
- START *
- Schematic *
- Securityconsiderations *
- Session *
- Sessionattackswillbepreventedwiththesemethods *
- Sessionsupport *
- SimilartoCAPTCHA.Theservergeneratesacodeandkeepsitinadatabase *
- Stop *
- Supportforauthenticatingagainstausergeneratedcode.Thecodeisstored *
- TheAuthenticationcomponentshouldsupportaddingfilters *
- TheSessionclassisresponsiblefor *
- Theauthenticationprocessisdividedintofilters *
- Theauthenticationprocesswillstop *
- Theauthenticationprocesswillstopregardlessofwhatfiltersarestillin *
- Thedeveloperoftheapplicationcangroupsimilarfilterstogether ,whereat
- Thefiltersruninsequence.Basedonthereturnstatusofeachfilter ,the
- Thelistoffilterscanbeextendedbydevelopers ,andcreatingnewfilters
- TheloggingofauthorizationattemptswillnotbedonebytheAuthentication *
- ThenewAuthenticationcomponentwillimplementonlytheIndentificatonand *
- Thenextfilterwillberun.Ifallfiltersarerunandpositiveanswer *
- ThepurposeoftheAuthenticationcomponentistoprovidesupportfordifferent *
- Thesessionisoptionalandisusedtomaketheauthenticationpersistent *
- Thestepsoftheauthenticationprocessare *
- TheuseofaSessionobjectisoptional *
- Theuserentertheirusername *
- Thisbehaviourcanbechangedwithanoptionforeachfilter ,whichspecifies
- Thisisusuallydonetoconfirmtheuser *
- Token *
- TypeKey *
- UsesaUnixhtpasswdfiletoauthenticateusers.Basicfilterandnottoo *
- Usesanexistingdatabasetoauthenticateusercredentials.Shoulduse *
- UsestheOpenIDprotocoltoauthenticateusers.Thecentralideaofthis *
- UsesthePHPsessiontomakeinformationabouttheauthenticateduser *
- VNO *
- VVV *
- Validation *
- Websitesusuallyhavea *
- Whatisauthentication *
- accessforthatuserbasedonstoredpermissions. *
- acodegenerator *
- acrossrequests.Ifthesessionisenabled ,theauthenticationprocessstarts
- anLDAPprovider ,butitneedsnotbepresentinbothproviders.Inthiscase
- anapplicationagainstscripts.Theservergeneratesacodeanddisplaysit *
- application. *
- applicationwillcomparetheuser *
- arenotrecognized ,theapplicationwilldenyaccesstotheuser.Sometimes
- asanexample. *
- astatusobjectwillcontaintheerror.Theapplicationwilldecide ,basedon
- atthesession ,whereitwillcheckiftheuserisalreadyauthenticated.If
- authenticatedagainstit.Itisusuallyusedforconfirmationoftheuser *
- authenticatedandauthenticationtimestamp *
- authenticationprocess ,anditwillsavetheauthenticationinformationfor
- authenticationprocess.Thesefilterswillbeprocessedinorder ,andonlyif
- authenticationprocesswillcontinueorstopasfollows *
- avoidenteringcredentialseverytimetheuserstartstheapplication.The *
- candecidewhichfilterstheapplicationshouldemployandtheirorder. *
- component *
- component ,butbytheapplication
- configuration ,atleastonefilterneedstosucceedinorderforthegroup
- databaseabstractiontobeabletoauthenticateagainstdifferentdatabase *
- deletedfromthedatabaseafterbeingused. *
- distributedprotocolisthatusersloginonlyonceusingtheirownURL. *
- eZComponents-Authentication ,Requirements
- emailaddress. *
- exampleifthepasswordisincorrect *
- file *
- fill-column *
- filtersneedtosucceedforthefiltergrouptosucceed. *
- filtersucceed ,thenthegroupfilterwillsucceed.
- functionality. *
- futurerequests ,aftertheprocess.
- handlingofresources. *
- ifthefilterstopstheauthenticationprocessifitissuccessful ,orallows
- imagetogainaccesstothesecuredfeature *
- inadatabase *
- isreceivedfromallofthem ,thentheuserisgrantedaccesstothe
- laterpointintime. *
- leastonefilterneedstosucceedforthefiltergrouptosucceed ,orall
- leastoneofthefiltersneedstosucceedforthegrouptosucceed. *
- meansofidentificationandauthenticationofusersusingdifferentprovidersand *
- mode *
- otherprotocols *
- persistentacrossrequests.Thisinformationincludesiftheuseris *
- protocols. *
- provider ,andallowtheuseraccesstotheapplication.Ifusercredentials
- providers *
- secureasthehtpasswdfilecanbeaccessibletosomeonewhohasaccessto *
- shouldnotaffectexistingcode. *
- specifytheprovidedSessionclassorextendittoimplementtheirdesired *
- stopsandthestatusoftheauthenticationcanbeusedbytheapplication *
- successful ,thenthesessionwillsavetheauthenticationinformationtobe
- theLDAPandDatabasefilterswillbegroupedtogether ,andifatleastone
- theauthenticationprocesstocontinue. *
- theauthenticationprocesswillberun.Iftheauthenticationprocesswas *
- theerrorstatus ,whattodo
- thepreviousfiltersallowtheprocesstocontinue.Ifonefilterfails *
- thequeue ,andtheuserisgrantedaccesstotheapplication.
- theserver.Shouldnotbeemployedoncriticalapplication.Itisusedmostly *
- thesessionexpiredoriftheuserisnotauthenticated ,theotherfiltersin
- tosucceed ,orallfiltersneedtosucceedinorderforthegrouptosucceed.
- totheuserinascrambledimage ,andtheusermustenterthecodeinthe
- usedinsubsequentrequests. *
- usesthiscodeintheapplication *
- vim *
- websitesuseothercredentialsinaddition ,likebanksrequiringuserstouse
- 3typesofcacheareavailableforanapplication.Thefirstandfastestlevel *
- Accordingtothereplacementstrategy ,cacheitemsneedtobeplacedinto
- Amajorproblemhereis ,thatthisinformationeitherneedstopersistbetween
- Anobjectofthisclassmusttakecareof *
- Aproblemwithanyofthereplacementstrategiesis ,thatadditional
- Assoonasthenumberofitemsinacacheexceedsthemaximum *
- Atypicalusecaseforthisfeatureexists ,ifseveralcachelocationsare
- Awaymustbeinvestigated ,howanarbitrarycachestoragecanbelimitedbythe
- Awayneedstobeimplementedtoputmultipleinstancesofthecurrent *
- Besidethemainrequirement ,tobeablerealizehierarchicalcaching,several
- Cachecomponenttosearchothercachesincaseofamiss.Forthisreason ,
- Cachepropagation *
- Cons *
- End *
- Hierarchicalstacking *
- Incontrast ,ithasthelargeststoragecapability.
- Inthisscenario ,thedesiredbehaviorwouldbethatthemostneededcache
- Itwouldbefavorabletoallowuserstodecideforaspecificreplacement *
- LRUalgorithm ,thelastaccesstimeofanitemneedstobestored.ForLFU,the
- Limitingofcacheditems *
- LocalVariables *
- Locking *
- Memcached ,runningonadedicatedcacheserver.Thisisalsoquitefast,but
- Openissues *
- Propagateinstore *
- Propagateonreplacement *
- Pros *
- Replacementstrategies *
- Requirements *
- Scope *
- Thecurrentstorageimplementationsassumethatunlimitedspaceisavailablein *
- Theideabehindthisfeatureistoprovidehierarchicalmultilevelcachingfor *
- Therearetwopossibilitiestodefinepropagationofcacheitemsthroughthe *
- Therequirementsforthesefeatureswillbedescribedinthisdocument.For *
- Thescopeofthisdocumentistodescribetherequirementsforthefeaturesto *
- Thestackingmechanismneedstosearchthestackofcachesfromtoptobottom *
- Thishassomeadvantagesandsomedisadvantagesagainstthesecondalternative *
- Thissectionsummarizesmiscopenissuesthatneedtobesolvedduringthe *
- Usecase *
- Usingthisstrategy ,anewlystoredcacheitemisonlyputintothetopmost
- Whenanewcacheitemisstored ,itneedstobestoredaccordingtothe
- Wikipediaunder *
- Withhierarchicalcaching ,thecomplexityofoperationsthatneedtobe
- Withthisstrategy ,anewlystoredcacheitemisautomaticallypropagatedto
- algorithmortoevenimplementtheirownstrategies. *
- alllevelsofthecachehierarchy.Withthisstrategy ,anewlystoredorupdate
- arequest.Thiscacheisextremelyfast ,becauseitresidesinlocalmemory,but
- available ,whicharedifferentlyperformantandcanstoreadifferentamount
- beforeitindicatesthatacacheitemcouldnotbefound. *
- beimplementedfortheCachecomponentversion1.4.Thisversionwill *
- cacheddataforthedesiredobject *
- cacheitemneedstobeupdateinallcachesofthehierarchyatonce. *
- cachestorageswithit. *
- cachingisprovidedbyafileserver ,whichofferstheslowestkindofcache.
- complexpersistencemechanismsforthedesiredinformationandmightpollutethe *
- designandimplementationphase. *
- designandimplementationrelatedinformation ,pleasetakealookatthedesign
- document. *
- done. *
- eZcomponent *
- eitherbestoredonlyin1Cacheorinseveralcachesatonce.Formore *
- filesystembasedcaches *
- fill-column *
- handlertobeaskedtorestoreacertainobject.Eitherthehandlerreturns *
- hasn *
- hierarchiccacheswillbeintroduced. *
- hierarchy.Aclasstomanagesuchstacksistobedesignedandimplemented. *
- higherlevelsofthehierarchy ,assoonastheygetrestoredfromadeeper
- implementedcachestoragesinastacktoindicatethattheyrepresenta *
- impossibletoknow ,severalestablishedalternatives
- incorporatethefollowingfeaturesandfixes *
- informationaboutacacheitemneedstobestored.Forexample *
- informationseethe *
- inthetopmoststorageofthecachestackandthelowerstorageswouldnotbe *
- iscoveredbyacachethatresidesinthelocalmemoryoftheserverfulfilling *
- isthereforealsolimitedtoaverylownumberofobjectsitcancontain *
- itdoesnothavevaliddata *
- itemisbubbleddowntothelowestlevel. *
- itemneedstobereplaced.Themostfavorableapproachwouldbetoremovethe *
- itemswouldbestoredinthefastestcache.Cacheitemswhicharenotthat *
- itemwhichwillbenotusedforthelongesttimeinthefuture.Sincethisis *
- lattersolutionmightsignificantlyreduceperformance *
- level ,tomakethemavailablefasteronsubsequentrestorerequests.Formore
- mode *
- much ,butstilloftenneededcouldresideinthesecondcachelevelandrarely
- needed. *
- notasfastasthelocalmemorycache ,sincedataneedstobetransfered
- numberofaccessesneedstobestored.Thecachestoragescurrentlydon *
- numberofcacheitemsitstores. *
- ofitems.Thefollowingissuchascenario. *
- openthepossibilityforraceconditionsinhighloadenvironments.Toavoid *
- performedonastorageandbetweendifferentstoragesisraised.Thismight *
- persistentlyandefficientlyneedstobethoughtout. *
- propagateddownonelevel ,beforebeingremovedfromthehigherlevelcache.
- propagation. *
- requestsorneedstoberecalculatedineachrequest.Ontheonehand ,the
- stack ,whereadecisionneedstobemadeforoneconsistentsolution
- storage.Inaddition ,thisshouldbethefasteststorage
- storageinthehierarchy.Assoonasitneedstobereplacedthere ,itis
- strategychosenforthemaintenanceofthehierarchy.Inaddition ,itcan
- structuresneedtobeavoidedtomaintainperformance. *
- sub-requirementsofthisexist ,whichwillbesummarizedinthissection.Note
- supportaddingsuchinformationandanappropriateplacetostorethis *
- thatafixedtargetistonotbreakBCforexistingapplicationsinanywayand *
- thatresidedeeperthanthefirstcachewheretheitemisfound. *
- theCachecomponent.CurrentlytheCachecomponentonlysupports1cache *
- theserverisdedicatedlybuildforperformantcaching.Thethirdlevelof *
- thestoragelocation.Followingthisphilosophy ,allcacheitemswouldbekept
- this ,alockingmechanism
- throughanetworkconnection.Ontheotherhand ,thiscacheislarger,since
- toavoidcodeduplicationasmuchaspossible.Besidethat ,toocomplex
- tosolvethereplacementproblem.Moreinformationaboutthiscanbefoundin *
- useditemswouldbestoredinthethirdlayer. *
- vim *
- withoutpollutingthelocalmemorytoomuch.Thesecondlevelcacheisa *
- 1.Booleanswhichcanbewrittenas *
- 2.NumbersarewrittenusingEnglishlocaleandcanbeinthefollowingformat *
- 3.Anexplicitstringwhichisenclosedindoublequotes *
- ASimpleName *
- Asimplename *
- BackgroundColor =0xaabbcc
- Commentsarealwaysplaced *
- Commentsarewrittenusinga *
- Currentimplementation *
- DNUM *
- Defaults *
- Defaultvaluescouldalsobestoredinasecondconfigfileiftheapplication *
- Description *
- Designgoals *
- Distributionvsdevsettings *
- EXPONENT_DNUM *
- End *
- Format *
- Groupandsettingidentifierscanonlycontainthecharactersatoz ,AtoZ,0
- Groupsaredefinedbyplacinganidentifierinsidesquarebracketsaloneonthe *
- Handlingdefaultvaluesformissingsettingsisuptotheapplication.Default *
- Hash =5
- Hash =4
- Inadditionitispossibletodefinearraysinasecondwaybyusingsquare *
- Inadditionthegroupnamesmaycontainforwardslashes *
- Inadditionthesquarebracketsmaybeenclosedaroundastringwhichturnsthe *
- Introduction *
- LNUM *
- List =Firststring
- List =5
- List =Secondstring
- LocalVariables *
- LogErrors =false
- MaxSize =400
- MinSize =0
- Mostapplicationsandcomponentsneedstobeabletoconfiguretheirbehavior *
- Multiplecommentlineswillbereadasonecommentwithmultiplelines ,if
- Permission =0666
- Price =10.4
- Requirements *
- Seed =10e5
- Setting =value
- Setting1 =Someexamplestring
- Setting2 =42
- Settingsaredefinedbyplacinganidentifierwithanequalsign *
- Specialconsiderations *
- SystemEnabled =true
- TextColor =0x0102FE
- The *
- Theconfigurationformatconsistsoffourelements *
- Theconfigurationpackageprovidesthetoolstostoreconfigurationsettings *
- ThecurrentimplementationusesonlyINIfilesandoneclass *
- ThefilesarealwaysencodedinUTF-8format ,thismeansitcancontainUnicode
- Thefollowingarelegalnames *
- Thefollowingconsiderationsmustbefollowedwhendesigningthecomponent. *
- Themajorproblemswiththecurrentimplementationare *
- TheoldsyntaxineZpublish3.xwith *
- Theparserwillremoveleadingandtrailingwhitespacefromgroupnames ,
- Thevaluesofsettingsaregenerallyseenasstringswiththeexceptionof *
- Validation *
- Validationisnotdonebytheconfigurationorthereaders *
- a-simple_and.longName *
- a.simple.name *
- a_simple_name *
- agenericconfigurationsystemisneeded.Thegoalofthedesignis *
- allowsyoutohavemultiplesettingswiththesamenamebutindifferent *
- alsotrimmed.Forinstancethefollowcomments *
- andtheseareillegal *
- array *
- arrayintoahash *
- arraysandstrings. *
- arraystospeeduptheprocess.Italsosupportsacomplexoverridesystem *
- asimplename *
- automated.Thismakesitpossibletooptimizetheapplicationbygettingrid *
- away *
- behavioraspossible ,separateautomationintodifferentclassesdepending
- beinusewhencreatingthedistribution.Themainproblemwasthatthesetting *
- beused ,butthatitismucheasierfortheapplicationtoknowhowtohandle
- brackets *
- butaccessingthemcanbedonewithanycase ,thismeansyoucannothavetwo
- charactersifneededorplainASCIIwithoutspecificencoding. *
- closetoimpossibleandwillonlycomplicatethecode. *
- commentstosettings.Forinstancethefilecouldlooklike *
- containsavalue. *
- defaultvalues. *
- describewhatthegroupcontainsorwhatasettingcontrols. *
- differentandsotheclassesmustcaterfortheneedofeachapplication. *
- eZpublishEnterpriseComponent *
- fasteraccesswhenusedonpageloads.Thismeansaslittleautomatic *
- fileasettingwasset. *
- filesorotherconfigurationformats.Theconfigurationpackagecomeswith *
- fill-column *
- formatinternallyintheapplication. *
- formatsthatfittheconfigurationstructure.Whilethefirstversionmaynot *
- forreadingthePHPwillparsethefile.Thefilewillcontainthreevariables ,
- foryourapplication.ConfigurationoptionsarestoredondiskusingINI *
- group.Settingswithoutgroupsarenotallowedandwillcauseanerrortobe *
- groups.Thismeansthatyoudon *
- havealltheotherformatsitshouldbeabletonewoneswitheaselateron. *
- havetobequoted. *
- havingthemexpiredwhentheoriginalconfigurationchanges. *
- inSVNwoulddifferfromthelivesettingmakingithardtogofromonesetup *
- intoproperPHPtypes ,thismeansintegers,floats,booleans,arraysand
- isnotpossible. *
- issued.Thegroupnamewillhaveitsleadingandtrailingwhitespacetrimmed *
- keptinsidethequotesandcharactersarereadliterallywiththeexception *
- line.Thewhitespaceblockbeforethecommenttextonallthelineswillbe *
- longeroccur. *
- mode *
- mustbepossibletoextendthisbyexternaldeveloperstosupportnewformats *
- name. *
- nameofthesiteorwhichemailtransporttouse.Howevertheapplications *
- ofescapedcharacters.Theescapedcharactersare *
- oflayersonedoesnotneed. *
- oneforthegroupsandsettings ,oneforthecommentstogroupsandonefor
- oneline ,itcannotspanmultiplelines
- ontheneed. *
- operations. *
- parser.Oncetheconfigurationisparsedanywhitespacetrimmingshouldno *
- problemsintheconfigurationtheyhavemadeormodified.Thismeans *
- reducesthememoryneededforopcodes. *
- reportingtheexactlocation ,whatiswrongandeventuallyhowtofixit.
- settingsandsettingvalues.Ifyouwishtokeepwhitespaceinastringitwill *
- settingswiththesameidentifieronlydifferingincase. *
- sincethelastcheck. *
- sothattheend-usercanchoosewhattodowithit.Thiscanbeconfiguringthe *
- string.Anysettingthatisreadafterthiswillbeplacedaspartofthis *
- strings.Thismeansthattheconfigurationsettingsarealwaysinaproper *
- stringsastexttheymustbequoted *
- sumoftheirconfigurations.Thisallowstheapplicationtousecachingand *
- supportformanipulationandstorageofINIfilesandcaching. *
- thantheconfigurationsystem. *
- thatonlycontainswhitespacewillbeignored. *
- thecommentitself *
- thedesignshouldmakesurethisisnolongeranissue. *
- thereareemptylinesinbetweencommentstheywillbereadasemptylinesin *
- thevaluefollowsaftertheequalsign.Thesettingandthevaluemustbeon *
- thismeansnothavingtoworryaboutwhitespacesandcasesfornames. *
- time. *
- timebeingassimpleandefficientaspossible.Theneedsofapplicationsare *
- to9 ,underscore
- totheother. *
- tousetheconfigurationfiles.Therearemanypitfallsforbothusageand *
- trimmedawaywhilewhitespaceafterthisblockiskept.Trailingwhitespaceis *
- uptotheapplicationtoprovideavalidationsystem.Thereasonisthat *
- useinthesystem.Thismakesitusemorememorythanitneedsto. *
- validationcanbesocomplexthatprovidingthisintheconfigurationobjectis *
- valuesalsoworktogetherwithvalidation.Ifvalidationfailsthedefaultscan *
- vim *
- wantsit. *
- wantstospendaslittletimeorcodewhenreadingintheconfigurationandso *
- whichallowsasite-access ,extensionorsite
- whichfittheconfigurationstructure. *
- willbecome *
- willmakethesettinganarrayandthevalueisparsedasexplainedabove. *
- willreadinagivenINIfilewhenitisinstantiatedandusescachinginPHP *
- Description *
- Designgoals *
- End *
- Handlingfeedscanbecumbersomeasyouneedtotakecareofencodings ,
- Introduction *
- LocalVariables *
- Requirements *
- Syndicationandaggregationareimportantaspectsofmodernwebapplications. *
- TheFeedpackageprovidesaccesstosyndicationfeeds ,butalsocontains
- asolidbasetogenerateandparsefeeds. *
- aspossiblewiththesupportofdifferenttypes *
- differentfeedtypesandmodules.Thiscomponentisdesignedtobeasflexible *
- eZpublishEnterpriseComponent *
- fill-column *
- functionalitytogeneratefeeds.TheFeedcomponentsupportsmultiplefeed *
- mode *
- supportthat. *
- thefeedtypesupportsthat *
- typesandalsoofferswaystouseadditionalmodulesinthefeedtypesthat *
- vim *
- 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 *
- Correspondingto *
- Foreachoftheissuestherequirementsareexplainedinaseparatesectionin *
- However ,sinceitreturnsnullifitdoesnot,thisresultcouldalsobe
- IdentitymapforPersistentObject *
- Ifthismethodiscalled ,thenewlyaddedrelatedobjectshouldbeaddedto
- Insidethismethod ,firstitshouldbecheckedifthesamefindquerywas
- Inthismethod ,theobjectdatacansafelyberefreshed,sincetheinstance
- Inthismethod ,therelationcacheneedstobeupdatedintheopposite
- SameasgetRelatedObjects *
- Sameassave *
- Scope *
- Thegeneralgoalforthisversionistoimplementvariousfeatures *
- Theimplementationofthisfeaturemusttrytotakecarethatnoobjectthatis *
- Theiteratorclass ,whichisresponsiblefortheretrievalofthedata,must
- Thereshouldbeaswitchtoswitchofthisbehavior ,tomakeanewfindto
- Thescopeofthisdocumentistodescribetherequirementsforthe *
- ThisclassofmethodscannotbesupportedbytheIdentityMap ,sinceitis
- Thismethodmustcheckforanexistingobjectinstancelikeload *
- Thismethodmusttakecaretoremoveallreferencestothegivenobjectfrom *
- Thismethodneedstocheckacachefirst ,ifrelatedobjectwiththegiven
- Thismethodshouldindicateanerror ,ifanalreadyloadedobjectistobe
- Wheneveranewobjectissaved ,itshouldbestoredinthecacheforlater
- Wheneveranobjectistobeloaded ,alookupmusttakeplace,ifthisobject
- alreadyperformedearlier.Inthiscase ,acachedresultsetcanbereturned.
- automatically.Thiswouldleadtoheavyinconsistencies.Thereforea *
- cachedorbere-evaluatedaslongasnoobjecthasbeenloadedsuccessfully. *
- cachedversion ,newlyloadedobjectsmustbecached.
- certaincases.However ,usuallytherefresh
- checkfornewobjects.Foranewquery ,thereturnedresultsmustbechecked
- criteriahavealreadybeenloaded.Ifthisisthecase ,theycansafelybe
- datacanbeoverwritten ,asrequestedbytheuser.
- describedbytheseissuesinourissuetracker *
- directionofaddRelatedObject *
- eZcomponent *
- elementbyelement.Alreadyloadedelementsmustbereplacedwiththeir *
- enhancementsproposedforthePersistentObjectcomponentversion1.5. *
- existingobjectinthatcase. *
- hasalreadybeenloaded.Ifthisisthecase ,theloadedversionshouldbe
- includingthequerycachedobjects. *
- indicated ,sincemostprobablythereisnowaytoreplaceallofits
- instanceswithacloneinthecachemappings. *
- into ,2casescanoccur
- loadedoncefromthedatabaseexistsina2ndcopyinthesamerequest.This *
- means ,thefollowingoperationsareaffectedinthedescribedway
- method ,nochangesarenecessary.Ifadifferentobjectisgiventoloaddata
- notpossibletodeterminetheaffectedobjectsfromthequery ,
- objects.Ifnoobjectsarefound ,yet,themethodmustreactasfind
- occur.Ifanotherinstanceexistsinthecache ,anerrormustberaised.If
- retrieval. *
- returned.Itmustbeevaluatedifthereisneedtoswitchthislookupoffin *
- returned.Itshouldbepossibletoswitchoffthisbehaviortoreloadrelated *
- shouldbetheonealreadyinthemappingcache.Afterall ,are
- sincethe *
- solutionmustbefoundhowcallstothesemethodsarehandled. *
- statedbelow ,canbefoundinthecorrespondingdesigndocument.
- storedintoanotherinstance.Incasethecorrectinstanceisgiventothe *
- takecaretorealizethesamebehaviorasfind *
- thecaches.Thiscanleadtoproblems ,ifmultiplecachesneedtobechecked.
- thecachethatislookedupbygetRelatedObjects *
- thecreateRelationFindQuery *
- theobjectisnotcachedatall ,itmustbeadded.
- thisdocument.Thedesignoftheenhancements ,fulfillingtherequirements
- Description *
- Designgoals *
- Inordertomakesysteminformationretrievalmoreflexible ,there
- Introduction *
- Requirements *
- TheSystemInformationpackageshouldprovideinterfaceforaccessing *
- Thiscomponentwillprovideaccesstocommonsystemvariables ,
- areseveralhelperclassesthatrepresentsspecificwayofreceiving *
- eZpublishEnterpriseComponent *
- shouldbesupportedwin32isdesiredaswell. *
- suchasCPUtypeandspeed ,andtheavailableamountofmemory.
- systeminfoformajoroperatingsystems. *
- totheunderlyingOperatingSysteminformation.AtleastUnixsystems *
ez/composer.json
packagist
- egulias/listeners-debug-command-bundle dev-master
- ezsystems/ezpublish-kernel dev-master
- php >=5.3.3
- sensio/generator-bundle 2.2.*
- symfony/assetic-bundle 2.1.*
- symfony/monolog-bundle 2.2.*
- symfony/swiftmailer-bundle 2.2.*
- symfony/symfony 2.2.0-RC2
- twig/extensions 1.0.*
ez/vendor/doctrine/cache/composer.json
packagist
- php >=5.3.2
- php >=5.3.2
ez/vendor/doctrine/common/composer.json
packagist
- doctrine/annotations 1.*
- doctrine/cache 1.*
- doctrine/collections 1.*
- doctrine/inflector 1.*
- doctrine/lexer 1.*
- php >=5.3.2
- php >=5.3.2
ez/vendor/doctrine/lexer/composer.json
packagist
- php >=5.3.2
ez/vendor/egulias/listeners-debug-command-bundle/Egulias/ListenersDebugCommandBundle/composer.json
packagist
- php >=5.3.3
- symfony/symfony >=2.0
- ezsystems/ezpublish-legacy dev-master development
- mikey179/vfsStream 1.1.0 development
- kriswallsmith/buzz dev-master
- php >=5.3.3
- qafoo/rmf 1.0.0
- symfony-cmf/routing 1.0.*
- symfony/symfony 2.2.0-RC2
- zetacomponents/archive dev-master
- zetacomponents/authentication dev-master
- zetacomponents/cache dev-master
- zetacomponents/configuration dev-master
- zetacomponents/console-tools dev-master
- zetacomponents/database dev-master
- zetacomponents/debug dev-master
- zetacomponents/event-log 1.4
- zetacomponents/feed dev-master
- zetacomponents/image-conversion dev-master
- zetacomponents/mail dev-master
- zetacomponents/mvc-authentication-tiein dev-master
- zetacomponents/mvc-tools dev-master
- zetacomponents/persistent-object dev-master
- zetacomponents/php-generator dev-master
- zetacomponents/signal-slot dev-master
- zetacomponents/system-information dev-master
- zetacomponents/webdav 1.1.3
- cssmin/cssmin * development
- joliclic/javascript-packer * development
- kamicane/packager * development
- leafo/lessphp * development
- leafo/scssphp * development
- leafo/scssphp-compass * development
- mrclay/minify * development
- ptachoire/cssembed * development
- twig/twig >=1.6.0,<2.0 development
- php >=5.3.1
- symfony/process >=2.1.0,<2.3-dev
- php >=5.3.0
ez/vendor/monolog/monolog/composer.json
packagist
- doctrine/couchdb dev-master development
- mlehner/gelf-php 1.0.* development
- raven/raven 0.3.* development
- php >=5.3.0
- psr/log ~1.0
- doctrine/orm ~2.2,>=2.2.3 development
- symfony/doctrine-bridge ~2.2 development
- twig/twig ~1.11 development
- symfony/console ~2.0
- symfony/framework-bundle 2.2.*
- php >=5.2.4
- symfony/class-loader >=2.1.0,<2.3-dev development
- symfony/console >=2.1.0,<2.3-dev development
- symfony/css-selector >=2.1.0,<2.3-dev development
- symfony/dom-crawler >=2.1.0,<2.3-dev development
- symfony/form >=2.1.0,<2.3-dev development
- symfony/twig-bundle >=2.1.0,<2.3-dev development
- symfony/yaml >=2.1.0,<2.3-dev development
- kriswallsmith/assetic 1.1.*
- php >=5.3.0
- symfony/framework-bundle >=2.1.0,<2.3-dev
- symfony/yaml ~2.2-beta2 development
- monolog/monolog ~1.3
- php >=5.3.2
- symfony/config ~2.2-beta2
- symfony/dependency-injection ~2.2-beta2
- symfony/monolog-bridge ~2.2-beta2
- symfony/config >=2.1.0,<2.3-dev development
- symfony/dependency-injection >=2.1.0,<2.3-dev development
- symfony/http-kernel >=2.1.0,<2.3-dev development
- symfony/yaml >=2.1.0,<2.3-dev development
- php >=5.3.2
- swiftmailer/swiftmailer >=4.2.0,<4.4-dev
- symfony/swiftmailer-bridge >=2.1.0,<2.3-dev
ez/vendor/symfony/symfony/composer.json
packagist
- doctrine/data-fixtures 1.0.* development
- doctrine/dbal ~2.2 development
- doctrine/orm ~2.2,>=2.2.3 development
- monolog/monolog ~1.3 development
- propel/propel1 1.6.* development
- doctrine/common ~2.2
- php >=5.3.3
- psr/log ~1.0
- twig/twig ~1.11
- doctrine/data-fixtures 1.0.* development
- doctrine/dbal ~2.2 development
- doctrine/orm ~2.2,>=2.2.3 development
- symfony/dependency-injection ~2.0 development
- symfony/form >=2.2,<2.3-dev development
- symfony/http-kernel >=2.2,<2.3-dev development
- symfony/security >=2.2,<2.3-dev development
- symfony/stopwatch >=2.2,<2.3-dev development
- symfony/validator >=2.2,<2.3-dev development
- doctrine/common ~2.2
- php >=5.3.3
- monolog/monolog ~1.3
- php >=5.3.3
- symfony/http-kernel >=2.2,<2.3-dev
- symfony/stopwatch >=2.2,<2.3-dev development
- php >=5.3.3
- propel/propel1 1.6.*
- symfony/form >=2.2,<2.3-dev
- symfony/http-foundation ~2.0
- symfony/http-kernel ~2.0
- php >=5.3.3
- swiftmailer/swiftmailer >=4.2.0,<4.4-dev
- symfony/form 2.2.* development
- symfony/http-kernel >=2.2,<2.3-dev development
- symfony/routing >=2.2,<2.3-dev development
- symfony/security >=2.0,<2.3-dev development
- symfony/templating ~2.1 development
- symfony/translation >=2.0,<2.3-dev development
- symfony/yaml ~2.0 development
- php >=5.3.3
- twig/twig ~1.11
- symfony/finder ~2.0 development
- symfony/security >=2.2,<2.3-dev development
- doctrine/common >=2.2,<2.4-dev
- php >=5.3.3
- symfony/config >=2.2,<2.3-dev
- symfony/dependency-injection ~2.0
- symfony/event-dispatcher ~2.1
- symfony/filesystem >=2.1,<2.3-dev
- symfony/http-kernel >=2.2,<2.3-dev
- symfony/routing >=2.2,<2.3-dev
- symfony/stopwatch >=2.2,<2.3-dev
- symfony/templating ~2.1
- symfony/translation >=2.2,<2.3-dev
- php >=5.3.3
- symfony/security >=2.2,<2.3-dev
- symfony/stopwatch >=2.2,<2.3-dev development
- php >=5.3.3
- symfony/twig-bridge 2.2.*
- symfony/config >=2.2,<2.3-dev development
- symfony/dependency-injection ~2.0 development
- symfony/stopwatch >=2.2,<2.3-dev development
- php >=5.3.3
- symfony/http-kernel >=2.2,<2.3-dev
- symfony/routing >=2.2,<2.3-dev
- symfony/twig-bridge 2.2.*
- symfony/css-selector ~2.0 development
- symfony/process ~2.0 development
- php >=5.3.3
- symfony/dom-crawler ~2.0
- symfony/finder ~2.0 development
- php >=5.3.3
- php >=5.3.3
- php >=5.3.3
- php >=5.3.3
- symfony/config >=2.2,<2.3-dev development
- symfony/yaml ~2.0 development
- php >=5.3.3
- symfony/css-selector ~2.0 development
- php >=5.3.3
- symfony/dependency-injection ~2.0 development
- php >=5.3.3
- php >=5.3.3
- php >=5.3.3
- symfony/http-foundation >=2.1,<2.3-dev development
- symfony/validator >=2.2,<2.3-dev development
- php >=5.3.3
- symfony/event-dispatcher ~2.1
- symfony/locale ~2.0
- symfony/options-resolver >=2.1,<2.3-dev
- symfony/property-access >=2.2,<2.3-dev
- symfony/browser-kit 2.2.* development
- symfony/class-loader ~2.1 development
- symfony/config ~2.0 development
- symfony/console 2.2.* development
- symfony/dependency-injection ~2.0 development
- symfony/finder ~2.0 development
- symfony/process ~2.0 development
- symfony/routing >=2.2,<2.3-dev development
- symfony/stopwatch >=2.2,<2.3-dev development
- php >=5.3.3
- psr/log ~1.0
- symfony/event-dispatcher ~2.1
- symfony/http-foundation >=2.2,<2.3-dev
- php >=5.3.3
- php >=5.3.3
- doctrine/common ~2.2 development
- psr/log ~1.0 development
- symfony/config >=2.2,<2.3-dev development
- symfony/yaml ~2.0 development
- php >=5.3.3
- doctrine/common >=2.2,<2.4-dev development
- doctrine/dbal ~2.2 development
- psr/log ~1.0 development
- symfony/form ~2.0 development
- symfony/routing >=2.2,<2.3-dev development
- symfony/validator >=2.2,<2.3-dev development
- php >=5.3.3
- symfony/event-dispatcher ~2.1
- symfony/http-foundation >=2.1,<2.3-dev
- symfony/http-kernel >=2.1,<=2.3-dev
- php >=5.3.3
- php >=5.3.3
- php >=5.3.3
- symfony/config >=2.0,<2.3-dev development
- symfony/yaml ~2.2 development
- php >=5.3.3
- symfony/config >=2.2,<2.3-dev development
- symfony/http-foundation ~2.1 development
- symfony/locale ~2.0 development
- symfony/yaml ~2.0 development
- php >=5.3.3
- symfony/translation ~2.0
- php >=5.3.3
- php >=5.3.2
- symfony/http-kernel >=2.1,<2.3-dev
- symfony/routing >=2.1,<2.3-dev
ez/vendor/twig/extensions/composer.json
packagist
- twig/twig 1.*
ez/vendor/twig/twig/composer.json
packagist
- php >=5.2.4
- zetacomponents/unit-test * development
- zetacomponents/base *
- zetacomponents/unit-test * development
- zetacomponents/base *
- zetacomponents/unit-test * development
- zetacomponents/unit-test * development
- zetacomponents/base *
- zetacomponents/unit-test * development
- zetacomponents/base *
- zetacomponents/unit-test * development
- zetacomponents/base *
- zetacomponents/unit-test * development
- zetacomponents/base *
- zetacomponents/unit-test * development
- zetacomponents/base *
- zetacomponents/unit-test * development
- zetacomponents/base *
- zetacomponents/unit-test * development
- zetacomponents/base *
- zetacomponents/unit-test * development
- zetacomponents/base *
- zetacomponents/image-analysis >=1.1.3
- zetacomponents/unit-test * development
- zetacomponents/base *
- zetacomponents/unit-test * development
- zetacomponents/base *
- doctrine/cache v1.0 development
- doctrine/lexer v1.0