SlideShare a Scribd company logo
October 28, 2014 LaravelTO Presentation: LaSalleCMS 1
Presenting LaSalleCMS 
● Popular first Laravel app is a blog 
● To learn Laravel I developed a blog 
● Enjoyed it so much I decided to keep 
developing it for my own sites, and as a basis 
for client work 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 2
LaSalleCMS 
● Called it LaSalleCMS 
● Although dubbing it a “content management 
system” is overstating things 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 3
My Sites Switched to Blog App 
● SouthLaSalle.com 
– flagship site, was WordPress 
● LaSalleMart.com 
– ecommerce site, was Joomla 
● LaSalleCMS.com 
– new, originally to be Joomla Distro site 
● LaSalleCAST.com 
– new, podcasting app: NOV 2014 
● SouthLaSalleMedia 
– still WordPress, but will be based on LaSalleCAST 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 4
Coming From Joomla 
● 2007 to Apr 2014 Joomla freelance consultant 
● Exec of Joomla User Group Toronto 
● Virtuemart 1.x expert 
● Created 3 rounds of LaSalleMart technology for 
Joomla 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 5
JUGT 
● “J” and “Abivia” 
deeply involved 
with Joomla 
Project 
● Doug doing an 
excellent job 
leading JUGT 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 6
October 28, 2014 LaravelTO Presentation: LaSalleCMS 7
Serious Version Mgmt Baggage 
● Joomla changed Series 3 “LTS” versioning 
policy in April 2014 
● Described on my sites 
● Upshot: increase risk of LaSalleMart 3.0 
becoming prematurely obsolete, well before 
any ROI achieved 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 8
Quick About 
● Live in Richmond Hill 
● UofT BComm grad 
● Have wonderful wife, three school-aged 
children 
● IT contractor in downtown towers before 
freelancing 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 9
Teach Thyself 
● Laracasts 
● Laravel Testing Decoded book 
● Impressive amount/quality of online stuff 
● Learn by doing 
● Scope of learning so huge that felt like I was 
back in class 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 10
LaSalleCMS Tour 
● A pedagogical exercise that became real 
software 
● Missing a zillion features 
● Front-end and back-end 
● User management for one user 
● Enjoy putting user params in a text file with no 
admin GUI 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 11
LaSalleCMS Tour 
● Contact form is a separate package 
● No testing (sorry Adam) as I decided I needed 
to understand Laravel first – I was right. 
● Refactored to use Command Bus – eye opener! 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 12
Folder Structure 
● http://daylerees.com/breaking-the-mold 
● /app/ for application infrastructure 
● /src/ for app and psr-0 
● /src/routes/ for all route files 
● /src/plumbing/ for user-specified startup stuff 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 13
lasallecms.php config 
● app/config/lasallecms.php 
● ever growing custom config params 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 14
Domain specific sub-folders 
● Well, maybe not really fit in with what a 
“domain” really is... but as a practical matter... 
● Each “thing” has its major “stuff” in its own sub-folders 
● Eg: src/lasallecms/categories 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 15
Add-on Packages 
● https://github.com/bbloom/lasallecms/blob/master/composer.● Guzzle, commander, presenter, generators 
(barely used), intervention (images, works 
great!), sanitizer, feed, twitter, my contact pkg 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 16
Repositories 
● https://github.com/bbloom/lasallecms/tree/master/src/● src/lasallecms/repositories 
● Interface & eloquent implementation for each 
● Models very clean, repositories very busy 
● Learned: code that does the heavy lifting has to 
go somewhere, and is sometimes real world 
irritatingly messy. I put the mess in the 
repository files 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 17
Base and Abstract Classes 
● Learned that “base” and “abstract” classes are 
important 
● So important that regardless of current need I 
always set up either a “base” or “abstract” class 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 18
Views 
● https://github.com/bbloom/lasallecms/tree/master/src/● View namespacing in plumbing/view_paths.php 
● src/Lasallecms/views/admin & site 
● Lasallecms.php config determines what 
subfolder to use in ../site/user-specified 
● using Blade, but intrigued by Twig 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 19
Namespacing #1 PITA 
● Spent more time on namespacing problems then 
anything else 
● composer update vs composer update --dev 
● composer dump-autoload vs 
composer dump-autoload -o 
● Packages: secret handshake seems to be... 
composer install --dev 
composer update --dev 
composer dump-autoload 
composer dump-autoload -o 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 20
Gave Up Trying to Pkg Blog App 
● Set up app for eventual conversion to a 
workbench package 
● Successfully create content package as a 
warm-up 
● Blog app too huge 
● Too many twists and turns 
● Learned: workbench for modest add-ons 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 21
Builds and Composer 
● I prefer headers in my PHP, especially caveat 
paragraph 
● I need two GitHub repos: one for Packagist, and the 
other for my actual coding 
● So I can do search-replace with Phing for build 
versions, etc. 
● Need to do trial runs of this 
● Paid packages? (Thought I'd sneak this into this 
presentation) 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 22
Thank You! 
● Thank you to Chris 
● Thank you to LaravelTO sponsors 
● Thank you for being a great audience! 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 23
Bob Bloom 
● http://SouthLaSalle.com 
● info@SouthLaSalle.com 
● @bobbloom 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 24
https://packagist.org/packages/ 
bbloom/contact 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 25
October 28, 2014 LaravelTO Presentation: LaSalleCMS 26
Sites 
● https://github.com/bbloom/lasallecms 
● https://packagist.org/packages/bbloom/contact 
● http://SouthLaSalle.com 
October 28, 2014 LaravelTO Presentation: LaSalleCMS 27

More Related Content

Similar to LaSalleCMS Presentation at LaravelTO Meet-Up

Introduction to rails
Introduction to railsIntroduction to rails
Introduction to rails
Go Asgard
 
Docker Workshop Birthday #3
Docker Workshop Birthday #3Docker Workshop Birthday #3
Docker Workshop Birthday #3
Jirayut Nimsaeng
 
Docker workshop
Docker workshopDocker workshop
Docker workshop
Rafael Dutra
 
Hack Rio/OS
Hack Rio/OSHack Rio/OS
Hack Rio/OS
Kishore Neelamegam
 
RoR (Ruby on Rails)
RoR (Ruby on Rails)RoR (Ruby on Rails)
RoR (Ruby on Rails)
scandiweb
 
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...
Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...
Holden Karau
 
Docker 101 - From production to development
Docker 101 - From production to developmentDocker 101 - From production to development
Docker 101 - From production to development
Raül Pérez
 
Sailor - A web MVC framework in Lua by Etiene Dalcol (Lua Workshop 2014)
Sailor - A web MVC framework in Lua by Etiene Dalcol (Lua Workshop 2014)Sailor - A web MVC framework in Lua by Etiene Dalcol (Lua Workshop 2014)
Sailor - A web MVC framework in Lua by Etiene Dalcol (Lua Workshop 2014)
Etiene Dalcol
 
openSUSE Conference 2017 - The Docker at Travis Presentation
openSUSE Conference 2017 - The Docker at Travis PresentationopenSUSE Conference 2017 - The Docker at Travis Presentation
openSUSE Conference 2017 - The Docker at Travis Presentation
lslezak
 
Exploits of the Snapcraft Ninja
Exploits of the Snapcraft NinjaExploits of the Snapcraft Ninja
Exploits of the Snapcraft Ninja
Dani Llewellyn
 
A few ideas how to integrate Wwise Authoring API (WAAPI) in your project work...
A few ideas how to integrate Wwise Authoring API (WAAPI) in your project work...A few ideas how to integrate Wwise Authoring API (WAAPI) in your project work...
A few ideas how to integrate Wwise Authoring API (WAAPI) in your project work...
DevGAMM Conference
 
معرفی و ساخت یک فریم‌ورک شخصی به کمک لاراول
معرفی و ساخت یک فریم‌ورک شخصی به کمک لاراولمعرفی و ساخت یک فریم‌ورک شخصی به کمک لاراول
معرفی و ساخت یک فریم‌ورک شخصی به کمک لاراول
جشنوارهٔ روز آزادی نرم‌افزار تهران
 
DiUS Computing Lca Rails Final
DiUS  Computing Lca Rails FinalDiUS  Computing Lca Rails Final
DiUS Computing Lca Rails Final
Robert Postill
 
Docker for Artisans
Docker for ArtisansDocker for Artisans
Docker for Artisans
RenPardon
 
Moving Beyond WordPress At Tech in Asia
Moving Beyond WordPress At Tech in AsiaMoving Beyond WordPress At Tech in Asia
Moving Beyond WordPress At Tech in Asia
Lester Chan
 
PySpark on Kubernetes @ Python Barcelona March Meetup
PySpark on Kubernetes @ Python Barcelona March MeetupPySpark on Kubernetes @ Python Barcelona March Meetup
PySpark on Kubernetes @ Python Barcelona March Meetup
Holden Karau
 
FireWorks overview
FireWorks overviewFireWorks overview
FireWorks overview
Anubhav Jain
 
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
Alexander Dean
 
10 less-known Laravel Packages: April 2016
10 less-known Laravel Packages: April 201610 less-known Laravel Packages: April 2016
10 less-known Laravel Packages: April 2016
Povilas Korop
 
The Workflow Methodology to Train Your Team on Drupal 8
The Workflow Methodology to Train Your Team on Drupal 8The Workflow Methodology to Train Your Team on Drupal 8
The Workflow Methodology to Train Your Team on Drupal 8
Acquia
 

Similar to LaSalleCMS Presentation at LaravelTO Meet-Up (20)

Introduction to rails
Introduction to railsIntroduction to rails
Introduction to rails
 
Docker Workshop Birthday #3
Docker Workshop Birthday #3Docker Workshop Birthday #3
Docker Workshop Birthday #3
 
Docker workshop
Docker workshopDocker workshop
Docker workshop
 
Hack Rio/OS
Hack Rio/OSHack Rio/OS
Hack Rio/OS
 
RoR (Ruby on Rails)
RoR (Ruby on Rails)RoR (Ruby on Rails)
RoR (Ruby on Rails)
 
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...
Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...
 
Docker 101 - From production to development
Docker 101 - From production to developmentDocker 101 - From production to development
Docker 101 - From production to development
 
Sailor - A web MVC framework in Lua by Etiene Dalcol (Lua Workshop 2014)
Sailor - A web MVC framework in Lua by Etiene Dalcol (Lua Workshop 2014)Sailor - A web MVC framework in Lua by Etiene Dalcol (Lua Workshop 2014)
Sailor - A web MVC framework in Lua by Etiene Dalcol (Lua Workshop 2014)
 
openSUSE Conference 2017 - The Docker at Travis Presentation
openSUSE Conference 2017 - The Docker at Travis PresentationopenSUSE Conference 2017 - The Docker at Travis Presentation
openSUSE Conference 2017 - The Docker at Travis Presentation
 
Exploits of the Snapcraft Ninja
Exploits of the Snapcraft NinjaExploits of the Snapcraft Ninja
Exploits of the Snapcraft Ninja
 
A few ideas how to integrate Wwise Authoring API (WAAPI) in your project work...
A few ideas how to integrate Wwise Authoring API (WAAPI) in your project work...A few ideas how to integrate Wwise Authoring API (WAAPI) in your project work...
A few ideas how to integrate Wwise Authoring API (WAAPI) in your project work...
 
معرفی و ساخت یک فریم‌ورک شخصی به کمک لاراول
معرفی و ساخت یک فریم‌ورک شخصی به کمک لاراولمعرفی و ساخت یک فریم‌ورک شخصی به کمک لاراول
معرفی و ساخت یک فریم‌ورک شخصی به کمک لاراول
 
DiUS Computing Lca Rails Final
DiUS  Computing Lca Rails FinalDiUS  Computing Lca Rails Final
DiUS Computing Lca Rails Final
 
Docker for Artisans
Docker for ArtisansDocker for Artisans
Docker for Artisans
 
Moving Beyond WordPress At Tech in Asia
Moving Beyond WordPress At Tech in AsiaMoving Beyond WordPress At Tech in Asia
Moving Beyond WordPress At Tech in Asia
 
PySpark on Kubernetes @ Python Barcelona March Meetup
PySpark on Kubernetes @ Python Barcelona March MeetupPySpark on Kubernetes @ Python Barcelona March Meetup
PySpark on Kubernetes @ Python Barcelona March Meetup
 
FireWorks overview
FireWorks overviewFireWorks overview
FireWorks overview
 
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
 
10 less-known Laravel Packages: April 2016
10 less-known Laravel Packages: April 201610 less-known Laravel Packages: April 2016
10 less-known Laravel Packages: April 2016
 
The Workflow Methodology to Train Your Team on Drupal 8
The Workflow Methodology to Train Your Team on Drupal 8The Workflow Methodology to Train Your Team on Drupal 8
The Workflow Methodology to Train Your Team on Drupal 8
 

Recently uploaded

Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
lorraineandreiamcidl
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Undress Baby
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 

Recently uploaded (20)

Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 

LaSalleCMS Presentation at LaravelTO Meet-Up

  • 1. October 28, 2014 LaravelTO Presentation: LaSalleCMS 1
  • 2. Presenting LaSalleCMS ● Popular first Laravel app is a blog ● To learn Laravel I developed a blog ● Enjoyed it so much I decided to keep developing it for my own sites, and as a basis for client work October 28, 2014 LaravelTO Presentation: LaSalleCMS 2
  • 3. LaSalleCMS ● Called it LaSalleCMS ● Although dubbing it a “content management system” is overstating things October 28, 2014 LaravelTO Presentation: LaSalleCMS 3
  • 4. My Sites Switched to Blog App ● SouthLaSalle.com – flagship site, was WordPress ● LaSalleMart.com – ecommerce site, was Joomla ● LaSalleCMS.com – new, originally to be Joomla Distro site ● LaSalleCAST.com – new, podcasting app: NOV 2014 ● SouthLaSalleMedia – still WordPress, but will be based on LaSalleCAST October 28, 2014 LaravelTO Presentation: LaSalleCMS 4
  • 5. Coming From Joomla ● 2007 to Apr 2014 Joomla freelance consultant ● Exec of Joomla User Group Toronto ● Virtuemart 1.x expert ● Created 3 rounds of LaSalleMart technology for Joomla October 28, 2014 LaravelTO Presentation: LaSalleCMS 5
  • 6. JUGT ● “J” and “Abivia” deeply involved with Joomla Project ● Doug doing an excellent job leading JUGT October 28, 2014 LaravelTO Presentation: LaSalleCMS 6
  • 7. October 28, 2014 LaravelTO Presentation: LaSalleCMS 7
  • 8. Serious Version Mgmt Baggage ● Joomla changed Series 3 “LTS” versioning policy in April 2014 ● Described on my sites ● Upshot: increase risk of LaSalleMart 3.0 becoming prematurely obsolete, well before any ROI achieved October 28, 2014 LaravelTO Presentation: LaSalleCMS 8
  • 9. Quick About ● Live in Richmond Hill ● UofT BComm grad ● Have wonderful wife, three school-aged children ● IT contractor in downtown towers before freelancing October 28, 2014 LaravelTO Presentation: LaSalleCMS 9
  • 10. Teach Thyself ● Laracasts ● Laravel Testing Decoded book ● Impressive amount/quality of online stuff ● Learn by doing ● Scope of learning so huge that felt like I was back in class October 28, 2014 LaravelTO Presentation: LaSalleCMS 10
  • 11. LaSalleCMS Tour ● A pedagogical exercise that became real software ● Missing a zillion features ● Front-end and back-end ● User management for one user ● Enjoy putting user params in a text file with no admin GUI October 28, 2014 LaravelTO Presentation: LaSalleCMS 11
  • 12. LaSalleCMS Tour ● Contact form is a separate package ● No testing (sorry Adam) as I decided I needed to understand Laravel first – I was right. ● Refactored to use Command Bus – eye opener! October 28, 2014 LaravelTO Presentation: LaSalleCMS 12
  • 13. Folder Structure ● http://daylerees.com/breaking-the-mold ● /app/ for application infrastructure ● /src/ for app and psr-0 ● /src/routes/ for all route files ● /src/plumbing/ for user-specified startup stuff October 28, 2014 LaravelTO Presentation: LaSalleCMS 13
  • 14. lasallecms.php config ● app/config/lasallecms.php ● ever growing custom config params October 28, 2014 LaravelTO Presentation: LaSalleCMS 14
  • 15. Domain specific sub-folders ● Well, maybe not really fit in with what a “domain” really is... but as a practical matter... ● Each “thing” has its major “stuff” in its own sub-folders ● Eg: src/lasallecms/categories October 28, 2014 LaravelTO Presentation: LaSalleCMS 15
  • 16. Add-on Packages ● https://github.com/bbloom/lasallecms/blob/master/composer.● Guzzle, commander, presenter, generators (barely used), intervention (images, works great!), sanitizer, feed, twitter, my contact pkg October 28, 2014 LaravelTO Presentation: LaSalleCMS 16
  • 17. Repositories ● https://github.com/bbloom/lasallecms/tree/master/src/● src/lasallecms/repositories ● Interface & eloquent implementation for each ● Models very clean, repositories very busy ● Learned: code that does the heavy lifting has to go somewhere, and is sometimes real world irritatingly messy. I put the mess in the repository files October 28, 2014 LaravelTO Presentation: LaSalleCMS 17
  • 18. Base and Abstract Classes ● Learned that “base” and “abstract” classes are important ● So important that regardless of current need I always set up either a “base” or “abstract” class October 28, 2014 LaravelTO Presentation: LaSalleCMS 18
  • 19. Views ● https://github.com/bbloom/lasallecms/tree/master/src/● View namespacing in plumbing/view_paths.php ● src/Lasallecms/views/admin & site ● Lasallecms.php config determines what subfolder to use in ../site/user-specified ● using Blade, but intrigued by Twig October 28, 2014 LaravelTO Presentation: LaSalleCMS 19
  • 20. Namespacing #1 PITA ● Spent more time on namespacing problems then anything else ● composer update vs composer update --dev ● composer dump-autoload vs composer dump-autoload -o ● Packages: secret handshake seems to be... composer install --dev composer update --dev composer dump-autoload composer dump-autoload -o October 28, 2014 LaravelTO Presentation: LaSalleCMS 20
  • 21. Gave Up Trying to Pkg Blog App ● Set up app for eventual conversion to a workbench package ● Successfully create content package as a warm-up ● Blog app too huge ● Too many twists and turns ● Learned: workbench for modest add-ons October 28, 2014 LaravelTO Presentation: LaSalleCMS 21
  • 22. Builds and Composer ● I prefer headers in my PHP, especially caveat paragraph ● I need two GitHub repos: one for Packagist, and the other for my actual coding ● So I can do search-replace with Phing for build versions, etc. ● Need to do trial runs of this ● Paid packages? (Thought I'd sneak this into this presentation) October 28, 2014 LaravelTO Presentation: LaSalleCMS 22
  • 23. Thank You! ● Thank you to Chris ● Thank you to LaravelTO sponsors ● Thank you for being a great audience! October 28, 2014 LaravelTO Presentation: LaSalleCMS 23
  • 24. Bob Bloom ● http://SouthLaSalle.com ● info@SouthLaSalle.com ● @bobbloom October 28, 2014 LaravelTO Presentation: LaSalleCMS 24
  • 25. https://packagist.org/packages/ bbloom/contact October 28, 2014 LaravelTO Presentation: LaSalleCMS 25
  • 26. October 28, 2014 LaravelTO Presentation: LaSalleCMS 26
  • 27. Sites ● https://github.com/bbloom/lasallecms ● https://packagist.org/packages/bbloom/contact ● http://SouthLaSalle.com October 28, 2014 LaravelTO Presentation: LaSalleCMS 27