Date post: | 29-Nov-2014 |
Category: |
Technology |
Upload: | nicolas-lazarte |
View: | 3,811 times |
Download: | 2 times |
Php com Subversion
Artigo sob a Licença Creative Commons.
Danilo Resende - [email protected] Fernandes - [email protected]ícolas Lazarte - [email protected]
2
Índice
● Objetivo da palestra
● Sistemas Controle de Versão e Subversion
● Biblioteca php-svn
● Instalação● Constantes● Funções
● Casos de utilização da biblioteca
● Exemplo de aplicação
3
Objetivo da palestra
Apresentação básica da biblioteca, da PECL¹, que permite a utilização da aplicação Subversion, através da
linguagem PHP.
Pode ser utilizada para o desenvolvimento de um portal onde os usuários de maneira mais fácil administrem o
sistema svn².
¹ A PECL (PHP Extension Community Library) contem extensões em C para compilação no PHP
² Subversion
4
Índice
● Objetivo da palestra
● Sistemas Controle de Versão e Subversion
● Biblioteca php-svn
● Instalação● Constantes● Funções
● Casos de utilização da biblioteca
● Exemplo de aplicação
5
Sistemas de Controle de Versão
Sistemas de controle de versão são aplicações com finalidade de gerenciar diferentes versões no
desenvolvimento de algum documento ou aplicação qualquer.
6
Subversion
● Projeto inicializado no ano 2000 pela CallabNet● É um sistema de controle de versão
centralizado● Existe um repositório central onde os usuários
adquirem uma cópia de trabalho.
● Fácil entendimento dos conceitos básicos● Checkout, update, commit, status, diff, resolve,
etc.
7
Subversion
8
Índice
● Objetivo da palestra
● Sistemas Controle de Versão e Subversion
● Biblioteca php-svn
● Instalação● Constantes● Funções
● Casos de utilização da biblioteca
● Exemplo de aplicação
9
Biblioteca svn para PHP
● Instalação
● Debian e derivados– Php5-svn – aptitude install php5-svn– No repositório do Ubuntu 9.10, o pacote está bugado,
para instalar-lo basta fazer download do pacote no repositório do Debian.
● Outra distro ou outro SO
– http://pecl.php.net/package/svn
10
Índice
● Objetivo da palestra
● Sistemas Controle de Versão e Subversion
● Biblioteca php-svn
● Instalação● Constantes● Funções
● Casos de utilização da biblioteca
● Exemplo de aplicação
11
Constantes
Constantes de Autenticação● SVN_AUTH_PARAM_DEFAULT_USERNAME → String
● Constante com o nome de usuário que será utilizado na autenticação do repositório subversion.
● SVN_AUTH_PARAM_DEFAULT_PASSWORD → String
● Constante com a senha referente ao usuário da constante anterior.
● PHP_SVN_AUTH_PARAM_IGNORE_SSL_VERIFY_ERRORS → Boolean
● Constante booleana que determina se será ignorado ou não erros de certificações da conexão SSL com o repositório
Serão apresentadas somente as constantes de autenticação por serem necessárias para desenvolver algo simples, outras constantes podem ser vistas em: http://br.php.net/manual/en/svn.constants.php
12
Índice
● Objetivo da palestra
● Sistemas Controle de Versão e Subversion
● Biblioteca php-svn
● Instalação● Constantes● Funções
● Casos de utilização da biblioteca
● Exemplo de aplicação
13
Funções
Manipulação das constantes de autenticação● void svn_auth_set_parameter(string $key, string $value)
● string svn_auth_get_parameter(string $key)
14
Funções
Trabalhando com arquivos e diretórios do repositório● string svn_cat(string $repos_url)
● Função que retorna o conteúdo de um arquivo que está no repositório.
15
Funções
Trabalhando com arquivos e diretórios do repositório● bool svn_delete(string $path)
● Função que remove um arquivo do repositório, é preciso fazer comit da modificação.
16
Funções
Trabalhando com arquivos e diretórios do repositório● bool svn_mkdir(string $path)
● Função que cria um diretório no repositório.
● bool svn_add(string $path)● Adiciona o arquivo ao repositório.
17
Funções
Trabalhando com arquivos e diretórios● array svn_ls(string $repos_url)
● Função que lista o conteúdo do repositório, como o ls do Linux.
18
Funções
Trabalhando com o repositório● bool svn_checkout(string $repos, string $targetpath)
● Faz uma cópia do repositório para a maquina local.
● int svn_update(string $path, int $revno)● Atualiza a cópia do seu repositório para a revisão especificada ou para a ultima.
19
Funções
Trabalhando com o repositório● array svn_commit(string $log, array $targets)
● Manda as modificações da sua cópia para o repositório.
20
FunçõesFunções para trabalhar com informações do repositório● array svn_status(string $path)
● Função que retorna os arquivos que foram modificados na cópiaOBS.: O retorno é composto por um array de cada arquivo, e cada item do array é outro array com muitas prioridades, é recomendado ver os seguintes links:
– http://br.php.net/manual/en/function.svn-status.php
– http://br.php.net/manual/en/svn.constants.php#svn.constants.status
21
Funções
Funções para trabalhar com informações do repositório● array svn_log(string $repos_url)
● Função que retorna as modificações feitas em cada revisão.
22
Índice
● Objetivo da palestra
● Sistemas Controle de Versão e Subversion
● Biblioteca php-svn
● Instalação● Constantes● Funções
● Casos de utilização da biblioteca
● Exemplo de aplicação
23
Casos de utilização da biblioteca
A biblioteca permite ao usuário criar sistemas de gerencia de projetos, sistema de deploy, sistemas amigáveis para usuários leigos em “terminal linux” e qualquer outro sistema em que seja necessário a comunicação
entre o subversion e o usuário.
24
Casos de utilização da biblioteca
Caso da Universidade Federal de Goiás
Problema: O Cercomp, orgão que cuida e administra o servidor web estava recebendo muitos pedidos de instituições da UFG para que
outros sistemas tenham espaço no servidor. Como os sistemas eram atualizados, a atualização era feita por ftp ou outros.
Solução: Foi desenvolvido um sistema de Deploy, onde os mantenedores do sistema através do Subversion, mandam a atualização
do sistema para o servidor e via sistema de Deploy, atualizavam diretamente no servidor web, podendo voltar em versões antigas caso
ocorresse conflito.
25
Índice
● Objetivo da palestra
● Sistemas Controle de Versão e Subversion
● Biblioteca php-svn
● Instalação● Constantes● Funções
● Casos de utilização da biblioteca
● Exemplo de aplicação
26
Exemplo de aplicação
● Phpsvn-Manager● Sistema de Deploy desenvolvido pelo Cercomp – UFG● https://softifes.andifes.org.br/projects/phpsvn-manager
– Sistema desenvolvido com finalidade de centralizar, gerenciar e organizar os projetos dentro da universidade.
– Software Livre.
27
Exemplo de aplicação
● Phpsvn-Manager● Sistema de Deploy desenvolvido pelo Cercomp – UFG● https://softifes.andifes.org.br/projects/phpsvn-manager
28
Referências
● Subversion - Wikipedia● http://pt.wikipedia.org/wiki/Subversion
● PHP.net documentação biblioteca Subversion● http://br.php.net/manual/en/book.svn.php
29
Dúvidas ??