Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

tylernathanreed's avatar

The 'CRUD' Acronym

I'm sure that many of us here are creating 'CRUD' applications using Laravel. However, I never really liked that acronym.

For those who don't know, CRUD stands for:

  • Create
  • Read
  • Update
  • Delete

However, the typical Resourceful Controller uses Index, Show, Create, Store, Edit, Update, and Delete. The 'index' functionality isn't even in the CRUD acronym.

I know that some people use the acronym 'CRUDL' (L for List), but the words within the acronym don't reflect the actions within the controller.

Other acronyms for this concept are 'BREAD' (Browse, Read, Edit, Add, and Delete), and 'MADS' (Modify, Add, Delete, and Show). Still, these aren't the names of the actions that we use.

So why don't we invent a new acronym? I suggest 'SIDUSCE' (pronounced 'seduce'):

  • Show
  • Index
  • Delete
  • Update
  • Store
  • Create
  • Edit

Do you guys have any other ideas?

0 likes
11 replies
jrdavidson's avatar

The Read of CRUD is for the Index function of a resourceful controller.

hero21's avatar

@tylernathanreed I think, whatever we name it, again we do those 4 actions in our applications. we create,read,update and delete. Do you do anything more than this with database ?.

tylernathanreed's avatar

@hero21 I'm not concerned about the database, as it's the controllers that actually act as an API of sorts for the CRUD paradigm. The basic resourceful controller does more than just four actions. While yes, they can be categorized by CRUD, it's virtually impossible to have a database without CRUD, and therefore the acronym becomes meaningless to me.

I'd much rather have a acronym that describes the actions of a resourceful controller.

spekkionu's avatar

Both the index and show methods are reads. CRUD is named for the database actions rather than Controller actions.

The way to tell is by looking at the main sql query being performed by the method.

Create starts with INSERT... Read starts with SELECT... Update starts with UPDATE... Delete starts with DELETE...

https://en.wikipedia.org/wiki/Create,_read,_update_and_delete

1 like
martinbean's avatar

@tylernathanreed ‘CRUD’ is named after the operations you perform on a resource, not the names of the methods actually used to perform that data. It’s entirely possible to implement CRUD operations without a resource controller.

tylernathanreed's avatar

@martinbean Very true. I suppose I just don't like the fact that 'RESTful Resource Controller' doesn't imply the actions from some acronym. Perhaps my perspective needs to change on that matter.

spekkionu's avatar

The names used for the method on a resource controller in Laravel are Laravel specific. Other frameworks with similar functionality can name them differently.

Here is an example from the ruby on rails docs (which inspired a lot of Laravel functionality).

class MessagesController < ActionController::Base
    # GET messages_url
    def index
      # return all messages
    end

    # GET new_message_url
    def new
      # return an HTML form for describing a new message
    end

    # POST messages_url
    def create
      # create a new message
    end

    # GET message_url(:id => 1)
    def show
      # find and return a specific message
    end

    # GET edit_message_url(:id => 1)
    def edit
      # return an HTML form for editing a specific message
    end

    # PUT message_url(:id => 1)
    def update
      # find and update a specific message
    end

    # DELETE message_url(:id => 1)
    def destroy
      # delete a specific message
    end
  end

The naming is very similar but not the same.
The Rails new method = Laravel create Rails create = Laravel store

The Symfony FOSRestBundle looks like it uses the same naming conventions as Rails. Zend Framework has its own naming as well.

In order for an acronym to be useful there needs to be a standard naming to create the acronym from.

Please or to participate in this conversation.