Alguns recursos em comparação com outras estruturas
Use o padrão MVC (Modelo / Visualização / Controlador)Ao contrário de outras estruturas, ele separa cada componente em pastas para melhor ordem e manutenção.
- Geração de código: Yii pode gerar código CRUD a partir de uma tabela de banco de dados, criando as consultas, listas e formulários.
- Suporte integrado ao framework jQuery e Bootstrap
- Métodos de controle de acesso integrados para autenticação e autorização de funções
- Ele incorpora um sistema de segurança e prevenção de ataques externo à web.
- Suporta widgets e extensões desenvolvidos pela comunidade
- Suporta o uso de modelos de design
Instalação do Yii Framework
Existem duas versões do Yii, uma Básica e uma Avançada. Na versão básica, os arquivos do usuário e os arquivos do administrador estão juntos, na versão avançada eles são separados em duas pastas como sistemas independentes A parte dianteira Y Processo interno
Para instalar o Yii 2.0, devemos baixar os arquivos do site do Yii Framework 2.0 no seguinte url Yii 2.0 Basic e Yii 2.0 Advanced.
Uma vez baixado, descompactamos o arquivo e copiamos a pasta avançada em nosso servidor local e renomeamos com o nome de nosso projeto web, neste caso o chamamos yiidemo.
A seguir, desde o terminal, devemos instalar os arquivos da estrutura da web para isso executamos o seguinte:
sudo php initEle nos perguntará se queremos executá-lo no modo Desenvolvimento ou Produção, escolheremos Desenvolvimento e depois confirmaremos, para que toda a estrutura padrão necessária seja copiada.
Se formos para a pasta web yiidemo, veremos que várias pastas foram instaladas e as duas que conterão os arquivos backend da web para o administrador e frontend para a web pública.
Podemos ver o back-end em um navegador a partir do url:
http: // localhost / yiidemo / backend / web /
Também podemos ver o modelo inicial:
http: // localhost / yiidemo / frontend / web /
PROLONGAR
Como podemos ver, tem algumas páginas de amostra, mas o login ou registro do usuário não são funcionais, pois não se conectam a nenhum banco de dados, mas servem como base de código para começar, também o design é responsivo.Em seguida, criaremos o banco de dados do phpmyadmin, que chamaremos de yiidemodb.
A tabela para o administrador terá a seguinte estrutura
- Estrutura da tabela para a tabela `administrador` - CRIAR TABELA SE NÃO EXISTIR` administrador` (`id` tinyint (3) NÃO NULO,` usuário` varchar (50) PADRÃO NULO, `chave` varchar (50) PADRÃO NULO,` email `varchar (100) DEFAULT NULL) ENGINE = MyISAM AUTO_INCREMENT = 2 DEFAULT CHARSET = latin1; - - Despejar dados para a tabela `administrador` - INSERT INTO` administrador` (` id`, `usuário`,` senha`, `email`) VALORES (1, 'admin', 'admin', '[email protected] '); Em seguida, teremos que configurar o link do banco de dados com o Yii para isso, vamos para a pasta / common / config e abrimos o arquivo main_local.php, aqui estarão as configurações comuns para o backend e frontend 'yii \ db \ Connection ',' dsn '=>' mysql: host = localhost; dbname = yiidemodb ',' username '=>' root ',' password '=>' ',' charset '=>' utf8 ',]; ?> var13 ->A seguir teremos que criar o modelo, o controlador e a visão do administrador, para isso usaremos a URL: http: // localhost / yii… index.php? R = gii
Depois de definir qual tabela queremos gerar o modelo, clique no botão Visualizar para ver como ficaria o arquivo e, em seguida, Gerar para gerar o código.
Em seguida, vamos ao gerador Crud para criar o código e a visualização, o controlador e as funcionalidades mínimas para interagir com a mesa. CRUD é a sigla para Criar, Obter, Atualizar e Excluir.
No crud teremos que definir as rotas do modelo e do controlador que será criado, também podemos adicionar um modelo para pesquisas.
Classe de modelo: backend \ modelos \ Administrador
Classe de modelo de pesquisa: backend \ models \ Administrator \ Administrator Search
Classe do controlador: backend \ controllers \ AdministratorController
Em seguida, pressionamos Visualizar e Gerar
Então, podemos testar o crud que geramos a partir do seguinte url
http: // localhost / yii… r = administrador
Em seguida, vamos para a pasta \ backend \ config e abrimos o arquivo main.php, onde modificaremos a seguinte linha de código:
'identityClass' => 'comum \ modelos \ Usuário'Mudamos para nosso modelo de administrador
'identityClass' => backend \ modelos \ AdministradorIndicamos que, para fazer o login no backend, usaremos o modelo de administrador encontrado no caminho especificado.
Em seguida, vamos para a pasta common \ models e copiamos o arquivo LoginForm.php na pasta backend \ models, desta forma separamos o login que está na forma comum para o backend e o frontend.
O controlador que invoca o login é SiteController.php.php, devemos abrir o arquivo e modificar a linha:
use common \ models \ LoginForm;Pela linha:
use backend \ models \ LoginForm;Desta forma, quando o formulário for enviado, ele irá procurar por LoginForm.php em backend \ modelos \ Administrador como definimos acima.
Em seguida, devemos modificar o LoginForm para adaptá-lo ao modelo de administrador da seguinte maneira:
getUser (); if (! $ user ||! $ user-> validatePassword ($ this-> senha)) {$ this-> addError ($ attribute, 'Nome de usuário ou senha incorreta.'); }} função pública login () {if ($ this-> validate ()) {echo 'hello'; return Yii :: $ app-> user-> login ($ this-> getUser (), $ this-> rememberMe? 3600 * 24 * 30: 0); } else {return false; }} // função que procura um usuário por seu nome de usuário função protegida getUser () {if ($ this -> _ usuário === null) {// se existe obtém um array com todos os dados $ this -> _ usuário = Administrador :: findByUsername ($ this-> nome de usuário); } return $ this -> _ user; }}?> var13 ->Em seguida, modificaremos o modelo de Administrador gerado e adicionaremos IdentityInterface que é uma classe que fornece vários recursos de segurança avançados para controle de acesso. Neste caso, nosso exemplo é simples, mas devemos implementá-los mesmo que não os utilizemos.
50], [['email'], 'string', 'max' => 100]]; } // Campos da tabela public function attributeLabels () {return ['id' => 'ID', 'user' => 'User', 'password' => 'Password', 'email' => 'Email',]; } // função predefinida em IdentityInterface para encontrar o usuário por nome função pública estática findByUsername ($ username) {return static :: findOne (['user' => $ username]); } / função predefinida em IdentityInterface para pesquisar a chave pública function validatePassword ($ password) {return static :: findOne (['key' => $ password]); } // função predefinida em IdentityInterface para encontrar o usuário por id função estática pública findIdentity ($ id) {return static :: findOne ($ id); } // função predefinida em IdentityInterface para pesquisar usuário por marcador ou token função estática pública findIdentityByAccessToken ($ token, $ type = null) {// retornar static :: findOne (['access_token' => $ token]); } // Retorna o ID do usuário public function getId () {return $ this-> id; } // Retorna uma chave que pode ser usada para verificar a validade de um ID public function getAuthKey () {// return $ this-> auth_key; } // Valida a chave retornada pela função anterior. public function validateAuthKey ($ authKey) {// return $ this-> getAuthKey () === $ authKey; }}Em seguida, precisamos mudar o layout em backend \ view \ layout, abrimos o arquivo main.php
Procuramos as linhas de código:
// Modificamos o nome da web My Company NavBar :: begin (['brandLabel' => 'My Company', 'brandUrl' => Yii :: $ app-> homeUrl, 'options' => ['class' => 'navbar-inverse navbar-fixed-top',],]); 'brandLabel' => 'Minha empresa', mudamos para 'brandLabel' => 'Minha demonstração Yii', // Se eu estiver conectado, mostro o link Login if (Yii :: $ app-> usuário-> isGuest) {$ menuItems [] = ['label' => 'Login', 'url' => ['/ site / login']]; } else {// Se não estiver, mostrarei outros links no menu $ menuItems [] = ['label' => 'Logout ('. Yii :: $ app-> usuário-> identidade-> nome de usuário. ' ) ',' url '=> [' / site / logout '],' linkOptions '=> [' data-method '=>' post ']]; }Aqui nós mudamos o usuário
'label' => 'Logout ('. Yii :: $ app-> usuário-> identidade-> nome de usuário. ')',Mudamos para o nosso campo de usuário
'label' => 'Logout ('. Yii :: $ app-> usuário-> identidade-> usuário. ')',Finalmente, podemos fazer login:
http: // localhost / pro… mo / backend / web /
- Do utilizador admin
- Chave admin
PROLONGAR
A página principal foi modificada de \ backend \ views \ site.Em outro tutorial veremos como alterar o design da página principal, criar menus, vincular páginas e adicionar funcionalidades. Esteja atento e siga-me se tiver interesse.Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo