Verbs are the fundamental item used to cause action in ShofarNexus. Verbs are used to manipulate data via queries or produce output files as HTML or other formats.
All Verb definitions can be found at “/Verb”.
Step #1: Manifest Generated
For each query a Manifest is generated which will contain all the data for processing the query.
Step #2: Parse Request
The Verb_List is built in the Manifest.
In an HTTP request the URL’s Query and the HTTP header’s post values are used.
For a Shofar request the verbs are part of the ShofarFile.
Step #3: Analyze Verbs
A purpose of the two step process of Analyze and Execute is to remove any dependency on the order that the Verbs are processed. When a Verb is dependent on the values of other Verbs, those values can be stored in the Manifest during the Analyze phase and then Verbs that require their values will have them during the Execute phase.
Each Verb is parsed and the Analyze function is called for the Verb. In most cases no action is taken.
The Target has not been determined before the Analyze processed.
For example to change a password it is common to have the value entered twice. Therefore a Password_1 Verb would store its value in the Manifest during the Analyze phase and do nothing in the Execute phase. Password_2 would do nothing in the Analyze phase and assume that Password_1’s value has been stored in the Manifest during the Execute phase for comparison.
Step #4: Execute Verbs
The Verb_List is iterated through again and Execute is called on each Verb. Since the Target has been determined by this point in the Manifest Processing, actions can be taken on the Target.
For example the verb Branch_Title would have its value placed in the Target’s File and the File would be updated in storage.
Step #5: Verbs in Markup
When the output is generated Markup is used from the Layers. As a Markup item is processed Compile Verbs are used to generate additional action such as looping or finding data, and Show Verbs are used to output values.