Jump to content
Sign in to follow this  
Mini0n

[PHP] Laravel

Recommended Posts

Ando a namorar o Laravel há uns tempos e entretanto acho que vou começar um projecto com ele e queria saber se alguém daqui usa Laravel e se sim, se conhecem bons sites para um gajo ver tutoriais e boas práticas (mais boas práticas que tutoriais :P)

Ainda hoje me deparei com o problema de não saber onde colocar a parte da autenticação. Num controller próprio? No home?

As routes, a melhor prática é chamar os resourceful controllers?

Tenho andado pelo Nettuts/Tutsplus, que o Jeffrey Way é grande viciado no Laravel e gosto bastante. Depois também já vi uns quantos tutoriais no YouTube mas ainda há muita gente a usar o Laravel 3 e depois há merdas que mudam para o 4 e eu fico atrofiado.

:Y:

Share this post


Link to post
Share on other sites

Ora cá estou eu...

Mini, tu ignora os resouceful controllers, isso é bom se quiseres programar um backoffice.

Geralmente faço assim, divido o website em blocos e crio os controllers, resumindo, imagina que tens um website que tens uma landingpage de apresentação de um produto, tens login e etc, e depois dentro do login tens uma àrea de gestão.

Faço um LandingPage controller (onde meto tudo que diga respeito à parte pre-auth, crio um metodo showHome por exemplo), um AuthController (onde ficam o showSignUp, doSignUp, etc...) e um AppController (imaginando que é uma coisa simples que não quero dividir em vários, onde coloco os metodos da aplicação pós-login).

Basicamente não tens grandes regras, o Laravel ao contrário de outras frameworks tens muita liberdade em como fazeres as coisas e organizares. Basicamente fazes como te der mais jeito. Exemplo... podes fazer um site se quiseres todo no ficheiro de routes!

Muita atenção ás relações nos models e vê bem como usar, por exemplo:

$user->houses // isto é o array de classes do Model House
$user->houses() // isto é o objecto relação para trabalhares, por exemplo $user->houses()->take(4) ou usares um "where"
//usares este acima num @foreach dá stress por exemplo

Uma boa prática, sempre que declares relações tem bem a atenção de criares as relações inversas, tem também algum cuidado na ordem dos nomes das pivot tables, aquilo usa ordem alfabética para automatizar o processo.

Como te disse por PM, se quiseres manda-me por PM o teu contacto skype/msn, whatever que te ajudo se precisares de algo. E até te passo o livro do Taylor, do "subdito" e doutro gajo.

Sorry pela resposta tardia... qualquer coisa apita ;)


Uma coisa, tens uma cena de Autenticação que podes dar uma olhadela chamada Sentry, é feita por um Tuga, é bastante engraçado, faz muita coisa, mas usa apenas se fizer apenas exactamente o que queres, porque alterares alguns comportamentos fica complicado.

Mas é fixe e é uma grande ajuda para projectos que tenhas de trabalhar muito com permissões e grupos de utilizadores.

  • Like 1

Share this post


Link to post
Share on other sites

:D

Pois, os resourceful é mesmo porque estou a tratar de um backoffice. CRUD com força. :Y:

Já vi que também usas o doLogin, showLogin, etc. Nunca me habituei a isso e ainda trofio um bocado com esses termos.

Também já reparei que a liberdade disto é algo de fantástico. E sim, fazer tudo no routes.php também já vi que dá. Nos exemplos do Jeff Way, o gajo faz muito disso, para mostrar esta ou aquela funcionalidade.

Quanto aos models e relações, é mais complicado do que eu pensava, ou melhor, estou a ter mais stress do que pensava que ia ter, mas o processo também me é automatizado a um nível que não sabia ser possível.

Para já, e relativamente à PM que te mandei, já resolvi a coisa. Fez-se um click e cheguei lá (essa do $x->y != $x->y(), por exemplo).

Vou instalar o Skype e entretanto mando-te o meu contacto. :Y:

Fica a thread para caso mais alguém necessite disto ou alguma dúvida mais geral. :)

Share this post


Link to post
Share on other sites

Alerta... cuidado como método sync em relações N-N... já me lixei por causa disso, o que não passares nesse array ele apaga :D Tenta usar o attach sempre.

  • Like 1

Share this post


Link to post
Share on other sites

Ainda não cheguei a essa fase. Mas fica a nota :P

Also, uma coisa que não estou a perceber é o eager loading.

Faço

$cena = Cena::with('Outracena')->get();

E depois na view

@foreach ($cena as $c)
{{ $c->outracena->name }}
@endforeach

E o gajo faz-me as queries:

SELECT * FROM cena

SELECT * FROM outracena WHERE outracena.id IN (...)

E depois repete-me a última query por cada uma das rows que encontra... não era suposto não fazer isso (uma vez que já tem tudo o que precisa do eager loading)? :unsure:
O que estou a fazer mal?

Share this post


Link to post
Share on other sites

Mini... "Outracena", não deveria ser "outracena"?

No with metes o nome da relação... neste caso... "outracena".

  • Like 1

Share this post


Link to post
Share on other sites

Sim, claro. :facepalm:

Ali fica o nome da function que define a relação, que neste caso é 'outracena'. :y:

Eu estava a por o nome da classe. :facepalm:

Já bomba nas horas as queries. :clap:

Edited by Mini0n
  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.