Experimenta aprender usando o framework Laravel, ele te dá caminhos prontos de como fazer tudo isso, e a documentação é bem legal.
Eu aprendi muito usando o site Laracasts.com (tem videos gratuitos, mas recomendo fortemente pagar um ou dois meses pra extrair o máximo)