24. Injecting the payload
public function index(SS_HttpRequest $req) {
// Get options compliant with interface
$opts = $this->extractFetchOptions($req);
// Staging the posting payload for DOM injection
PayloadInjector::stage([
'postings' => Posting::fetch($opts);
]);
return $this->renderWith('MainView');
}
StripeCon EU 18 :: Julian Scheuchenzuber <js@lvl51.de> :: Level51
26. Making payload available for Vue.js
<!-- MainView.ss -->
<% if $Payload %>
<script>window.payload = $Payload;</script>
<% end_if %>
Note: PayloadInjector will handle this in v2
StripeCon EU 18 :: Julian Scheuchenzuber <js@lvl51.de> :: Level51
27. Making payload available for Vue.js
// main-view.js
import Vue from 'vue';
// Initial data for Vue instance
let data = {
showPreview: false
};
// Merging injected payload
if (typeof payload !== undefined) Object.assign(data, payload);
new Vue(
el: '#app',
data // <--- prepared payload is available through instance data prop
);
StripeCon EU 18 :: Julian Scheuchenzuber <js@lvl51.de> :: Level51
38. CQRS Utils: IPayloadStore
interface IPayloadStore {
public function read(string $key): array;
public function write(string $key, array $payload);
public function delete(string $key);
public function info(string $option = null): array;
public function getName(): string;
}
StripeCon EU 18 :: Julian Scheuchenzuber <js@lvl51.de> :: Level51