Are php classes trans-compiled to Go?


While testing PHP with the sample app, I noticed that live changes to ExecuteCommand code were reflected in the output, but changes to other Workflow/Activity" classes did not take effect unless I ran docker compose down --volumes then started the app back up.

To test this hypothesis that PHP is converted to compiled Go, I modified a classname so it wouldn’t match the interface, and got this error

  "message": "unable to find workflow type: MoneyTransfer. Supported types: [Cron.greet, Signal.greet, Child.greet, FileProcessing, DynamicSleepWorkflowInterface, Schedule.greet, CancellationScope.greet, AsyncActivity.greet, Periodic.greet, SimpleActivity.greet, MoneyBatch, SearchAttributes, Saga.Compensate, Saga, Zonk.start, Saga.ChildWorkflow, ChildWorkflow, AsyncActivityCompletion.greet, QueryWorkflow.createGreeting, Polymorphic.greet, Parent.greet, GreetingWorkflow, AsyncClosure.greet, FailedWorkflow, ActivityRetry.greet, BookingSaga, SubscriptionWorkflowInterface]",
  "source": "GoSDK",
  "stackTrace": "",
  "encodedAttributes": null,
  "cause": null,
  "applicationFailureInfo": {
    "type": "",
    "nonRetryable": false,
    "details": null

see "source": "GoSDK",

Thanks for any insight!
Would love to know if there’s a workaround to this, otherwise testing php class updates locally means we have to reload the temporal services.

I just figured out that to see live-updated volumed-in code changes taking effect, I needed to run rr reset within the sample-app container before executing the updated code :smile: