Jump to content

[PHP] Laravel


Mini0n
 Share

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:

Link to comment
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
Link to comment
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. :)

Link to comment
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?

Link to comment
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
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • 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.