# "Return Early" Pattern

⚡️ Tags:

Take a look at the function track_user_activity() in file /application/core/MY_Controller.php

protected function track_user_activity(){
    $user_id = $this->b2be_runtime->getUserID();
    if(!empty($user_id)){
        $current_datetime = date('Y-m-d H:i:s');
        // check if not from test connection ajax, count activity user
        if($this->router->fetch_class() != 'internet'){
            // 60+ lines of code here
        }
    }
}

Can you read that? Yes, but ...

  • The code indent is not easy to read
  • nested logical condition is complexity

# Return Early

Ok, let me do a make up on this code

protected function track_user_activity(){
    $user_id = $this->b2be_runtime->getUserID();
    if(empty($user_id)) {
        return;
    }

    if($this->router->fetch_class() != 'internet') {
        return;
    }

    $current_datetime = date('Y-m-d H:i:s');
    // 60+ lines of code here

}

Most of cases you can apply this pattern to keep your code more clean and more readable.

Now It's Your Turn!