Última compilação de 2020 de perguntas e respostas para entrevistas em PHP

1. Introdução à OOP e recursos da OOP

OOP é a programação orientada a objetos. A programação orientada a objetos é uma arquitetura de programação de computador. Um princípio básico da OOP é que um programa de computador é composto de uma única unidade ou objeto que pode funcionar como uma sub-rotina.

Características do OOP:

  1. Encapsulamento : também conhecido como ocultação de informações, separa o uso e a implementação de uma classe e apenas mantém algumas interfaces e métodos em contato com o exterior, ou apenas expõe alguns métodos para os desenvolvedores usarem. Portanto, os desenvolvedores só precisam prestar atenção em como usar essa classe em vez do processo de implementação específico, de modo que a divisão de trabalho do MVC possa ser realizada, a interdependência entre os programas possa ser efetivamente evitada e o acoplamento fraco entre os módulos de código possa ser realizado.

  2. Herança : isto é, a subclasse herda automaticamente as propriedades e métodos de sua classe pai e pode adicionar novas propriedades e métodos ou reescrever algumas propriedades e métodos. A herança aumenta a capacidade de reutilização do código. O PHP só suporta herança única, o que significa que uma classe filha só pode ter uma classe pai.

  3. Polimorfismo : a subclasse herda as propriedades e métodos da classe pai e reescreve alguns dos métodos. Portanto, embora várias subclasses tenham o mesmo método, os objetos instanciados por essas subclasses podem obter resultados completamente diferentes após chamar esses mesmos métodos.Esta técnica é o polimorfismo. O polimorfismo aumenta a flexibilidade do software.

Em segundo lugar, as características do laravel

O framework laravel apresenta fachada, injeção de dependência, modo Ioc e vários padrões de projeto. Além disso, as características do laravel são:

  1. Roteador de descanso poderoso: você pode chamá-lo com uma função de retorno de chamada simples e vincular rapidamente o controlador e o roteador

  2. artesão: ferramenta de linha de comando, muitas tarefas manuais são automatizadas

  3. Modelos herdáveis ​​para simplificar o desenvolvimento e gerenciamento de visualizações

  4. Modelo de lâmina: renderização mais rápida

  5. Banco de dados de operação ORM

  6. migração: gerenciar banco de dados e controle de versão

  7. A função de teste também é muito poderosa

  8. compositor também é destaque

Três, descreva brevemente vários aspectos da otimização de banco de dados

A otimização do banco de dados pode ser otimizada em quatro aspectos:

  1. Da camada estrutural: o servidor web adota o servidor de balanceamento de carga, o servidor mysql adota a replicação mestre-escravo, separação leitura-gravação;

  2. Da camada de armazenamento: adote um mecanismo de armazenamento adequado e adote três paradigmas;

  3. Do nível de design: use particionamento e subtabelas, índices e campos de tabela com atributos de campo apropriados, paradigmas inversos apropriados e cache mysql aberto;

  4. Camada de instrução SQL: no caso do mesmo resultado, use a execução de instrução SQL de alta eficiência, rápida e com economia de recursos;

Quarto, a realização de gerenciamento de autoridade (RBAC)

  1. Primeiro crie uma tabela de usuário: nome de id auto (formato de salvamento: método do controlador)

  2. Em seguida, crie um controlador de classe base em segundo plano e encapsule um método de construção no controlador. Quando o usuário efetuar login com sucesso, use a função de sessão encapsulada na estrutura TP para obter o id de sessão armazenado no servidor e, em seguida, instanciar o modelo por meio do usuário id obtém os dados de autenticação armazenados na tabela de dados, usa a função explodir para dividir os dados obtidos e os salva usando uma matriz, em seguida, usa as constantes encapsuladas na estrutura TP para obter o controlador e método atuais e, em seguida, os monta em uma string , Use a função in_array para julgar se o array contém os controladores e métodos adquiridos atualmente, se não, ele irá solicitar que o usuário não tenha permissão, se houver, vá para a próxima etapa

Cinco, quais são as vantagens do framework thinkPHP

O framework thinkPHP é um framework desenvolvido por nós, chineses, com uma gama de materiais relativamente completa e usado mais internamente. É relativamente simples e conveniente, além de ser gratuito e de código aberto.

Sexto, quais são as características do thinkPHP

  1. A consulta multi-tabela é muito conveniente, algumas linhas de código no modelo podem completar a operação associada da multi-mesa

  2. Incorporando modelos smarty para separar as pontas frontal e traseira

  3. Suportar várias tecnologias de cache, especialmente para suporte de tecnologia memcache é muito bom

  4. As convenções de nomenclatura, modelos, visualizações e controladores seguem estritamente as regras de nomenclatura e correspondência um a um por meio de nomenclatura

  5. Suporta vários modos de url

  6. Método de retorno ajax integrado, incluindo xml, json, html, etc.

  7. Suporta extensão de aplicativo, extensão de biblioteca de classe, extensão de driver, etc.

7. Descreva resumidamente os cookies e as características dos cookies

Um cookie é uma informação gerada pelo servidor e armazenada no cliente. Ele define um mecanismo para o servidor Web armazenar e retornar informações sobre o cliente.O arquivo de cookie contém o domínio, caminho, tempo de vida e valores de variáveis ​​definidos pelo servidor. Quando o usuário visitar o mesmo servidor da Web no futuro, o navegador enviará o cookie para o servidor como está. Ao permitir que o servidor leia as informações salvas anteriormente para o cliente, o site pode fornecer uma série de conveniências para os visualizadores, como identificar a identidade do usuário durante as transações online, evitar que o usuário insira novamente o nome e a senha e a página inicial do site do portal onde os requisitos de segurança não são altos Publicidade direcionada, personalizada, etc. Utilizando as características dos cookies, as funções das aplicações WEB são bastante expandidas, não só podendo estabelecer a conexão entre o servidor e o cliente, pois o cookie pode ser personalizado pelo servidor, como também pode armazenar no cliente as informações de compras geradas pelo valor do cookie, percebendo assim o carrinho de compras Recursos. O uso de métodos baseados em cookies para implementar uma sessão ou carrinho de compras entre o servidor e o navegador tem as seguintes características:

  1. Os cookies são armazenados no cliente e ocupam poucos recursos.O navegador permite armazenar 300 cookies, cada um dos quais com 4 KB, o que é suficiente para atender aos requisitos de um carrinho de compras e também reduz a carga no servidor;

  2. Os cookies são integrados ao navegador e são fáceis de usar. Mesmo que o usuário feche acidentalmente a janela do navegador, as informações do carrinho de compras não serão perdidas, desde que o cookie defina o período de validade;

  3. Cookie não é um arquivo executável, portanto não será executado de forma alguma, portanto não trará vírus ou atacará o sistema do usuário;

  4. O carrinho de compras baseado em cookies requer que o navegador do usuário suporte e esteja configurado para habilitar cookies, caso contrário, o carrinho de compras será inválido;

  5. Existem controvérsias sobre a violação de cookies da privacidade dos visitantes, portanto, alguns usuários proibirão a função de cookies desta máquina.

8. Descreva resumidamente as características da sessão e da sessão

A sessão é outra forma de implementar um carrinho de compras. A sessão oferece a função de salvar e rastrear as informações de status do usuário, de forma que as variáveis ​​e objetos definidos pelo usuário atual na sessão possam ser compartilhados entre as páginas, mas não possam ser acessados ​​por outros usuários no aplicativo. A diferença mais importante entre ela e os cookies é , Sessão armazena as informações privadas do usuário durante a sessão no lado do servidor, o que melhora a segurança. Após o servidor gerar a sessão, o cliente irá gerar um número de identificação de sessão e salvá-lo no cliente para mantê-lo sincronizado com o servidor. Esta id de sessão é somente leitura. Se o cliente desabilitar a função de cookie, a sessão será transferida entre as páginas anexando parâmetros ao URL ou enviando-o implicitamente no formulário. Portanto, o uso de sessão para implementar o gerenciamento de usuários é mais seguro e eficaz.

Da mesma forma, um carrinho de compras também pode ser implementado usando sessão. As características deste método são:

  1. A sessão usa um novo mecanismo para manter a sincronização com o cliente, independente das configurações do cliente;

  2. Em comparação com os cookies, a sessão é a informação armazenada no lado do servidor, por isso é mais segura, portanto, informações como identificação e compra podem ser armazenadas na sessão;

  3. A sessão consumirá recursos do servidor e aumentará a carga no lado do servidor, especialmente quando há muitos usuários simultâneos, um grande número de sessões será gerado, o que afetará o desempenho do servidor;

  4. Como as informações armazenadas na sessão são mais confidenciais e são armazenadas no servidor na forma de arquivos, ainda existem riscos de segurança ocultos.

Nove, a função da letra maiúscula na estrutura do thinkPHP

  • U: montagem de url
  • R: Instancie internamente o controlador
  • S: Processamento de cache
  • R: Chame o método de operação de um determinado controlador
  • D: instanciar uma classe de modelo personalizado
  • M: instanciar a classe do modelo base
  • I: Obter parâmetros
  • L: Definir ou obter o idioma atual
  • C: definir ou obter, salvar configuração

Dez, como definir a interface

Existem dois tipos de interface : uma é uma interface de dados e a outra é uma interface de aplicativo.

Interface de tipo de dados : é uma certa "estrutura" que é mais abstrata do que uma classe abstrata - não é realmente uma classe, mas uma certa estrutura gramatical como uma classe. É uma especificação estrutural que regula o formato em que nossa classe deve ser definida, geralmente Usado quando a equipe é relativamente grande e há muitas filiais.

Interface do aplicativo : API (interface do aplicativo) um ponto de entrada para acesso externo aos dados

Estou envolvido principalmente na preparação da interface no desenvolvimento do APP. Que tipo de dados o cliente precisa, nós fornecemos os dados correspondentes, e os dados são retornados no formato json / xml com os documentos de interface correspondentes.

Preste atenção, não se perca

Tudo bem, pessoal, o acima é todo o conteúdo deste artigo. As pessoas que podem ver aqui são todos talentos . Como eu disse antes, há muitos pontos técnicos em PHP, porque são muitos, é realmente impossível escrever, e você não vai ler muito depois de escrever, então irei organizá-los em PDF e documentos aqui, se necessário lata

Clique para inserir o código secreto: PHP + 「Plataforma」

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui


Para obter mais conteúdo de aprendizado, você pode visitar o Catálogo [Comparative Standard Factory] de Tutoriais de Excelente PHP Architect, contanto que você possa lê-lo para garantir que o salário suba um nível (atualização contínua)

O conteúdo acima espera ajudar a todos . Muitos PHPers sempre encontram alguns problemas e gargalos quando são avançados. Não há nenhum senso de direção ao escrever muito código comercial. Não sei por onde começar a melhorar. Compilei algumas informações sobre isso, incluindo Mas não se limitando a: arquitetura distribuída, alta escalabilidade, alto desempenho, alta simultaneidade, ajuste de desempenho do servidor, TP6, laravel, YII2, Redis, Swoole, Swoft, Kafka, otimização Mysql, scripts de shell, Docker, microsserviços, Nginx etc. Muitos pontos de conhecimento, produtos secos avançados avançados, podem ser compartilhados com todos gratuitamente, e aqueles que precisam podem se juntar ao meu grupo de intercâmbio de tecnologia PHP

Acho que você gosta

Origin blog.csdn.net/weixin_49163826/article/details/108868471
Recomendado
Clasificación