Transitioning from Laravel to Spruce

Laravel is a PHP framework designed for web application development that follows the MVC (Model-View-Controller) architectural pattern. Spruce, in contrast, is a TypeScript-based framework that also covers full-stack development but leverages JavaScript’s ecosystem. This guide will help you draw parallels between familiar Laravel concepts and Spruce’s architecture, offering a clear path to apply your existing Laravel skills to Spruce development.

Key Differences between Laravel and Spruce Development

LaravelSpruce
Programming LanguagePHPTypeScript
IDEPhpStorm, VS CodeVisual Studio Code
App LifecycleLifecycle managed by LaravelNo Equivalent
UI DesignBlade TemplatesHeartwood, ViewControllers
Event HandlingEvents and ListenersMercury
Data PersistenceEloquent ORMData Stores
Error HandlingTry-Catch Blocks, Error Handling Mechanisms in LaravelTry-Catch Blocks, SpruceErrors
TestingPHPUnit, Laravel DuskTDD by the 3 laws
User AuthenticationBuilt-in Auth, Sanctum, PassportMercury, Authenticator
User PermissionsGates and PoliciesMercury, Authorizor

Programming Language

Laravel

Coming soon...

Spruce

import {
 AbstractSkillViewController,
 CardViewController,
 ViewControllerOptions,
 buildSkillViewLayout,
 SkillView
} from '@sprucelabs/heartwood-view-controllers'

export default class RootSkillViewController extends AbstractSkillViewController {
 public static id = 'root'
 protected cardVc: CardViewController

 public constructor(options: ViewControllerOptions) {
  super(options)
  this.cardVc = this.Controller('card', {
   header: {
    title: 'Hello, World!',
   }
  })
 }

 public render(): SkillView {
  return buildSkillViewLayout('grid', {
   cards: [this.cardVc.render()]
  })
 }
}

IDE

Coming soon...

App Lifecycle

Coming soon...

UI Design

Coming soon...

Event Handling

Coming soon...

Data Persistence

Coming soon...

Error Handling

Coming soon...

Testing

Coming soon...

User Authentication

Coming soon...

User Permissions

Coming soon...

Something Missing?

Request Documentation Enhancement

Now What?

Install the Development Theatre
It looks like you are using Internet Explorer. While the basic content is available, this is no longer a supported browser by the manufacturer, and no attention is being given to having IE work well here.