2010-12-09 4 views
17

내가 옵션과 시스템의 "설치"PHP 라이브러리에 관한 용어 (리눅스/OSX) 여기이해 PHP 라이브러리 설치

내가 커버하기 위해 노력하고있어 일부 특정 지점입니다을 이해하려고 노력 해요 :

  1. PHP 라이브러리와 관련하여 "설치"란 무엇을 의미합니까?
  2. 라이브러리와 확장의 차이점은 무엇입니까?
  3. php.ini는 어떻게 들어 맞습니까?
  4. PEAR은 어떻게 들어 맞습니까?
  5. 라이브러리 가져 오기/포함은 어떻게합니까?
  6. 내 라이브러리를 만들면 패키지를 만들고 배포하는 가장 좋은 방법은 무엇입니까?

고맙다 - 그리고 ... 멀티 부분에 대한 미안

+1

일부 내용은 PHP 설명서 [Php.ini] (http://www.php.net/manual/en/configuration.file.php), [PECL/PEAR] (http : // www.php.net/manual/en/install.pecl.intro.php). – eykanal

답변

4
모든 직접 PHP 관련

:

  1. 보통 그냥 복사하여 사용하려는 확실히 무언가를 만들 위치를 알고 그것은.
  2. 확장자는 대개 C로 작성되고 인터프리터에 의해로드되지만 라이브러리는 일반적으로 기본 PHP 라이브러리를 의미합니다.
  3. 모릅니다. 여기에서 알고 싶은 것이 있습니다. ini는 확장을로드하고 일부 설정을 설정합니다. 그것은 설치와 직접적으로 관련이 없습니다 .... 여기에 포함 경로 (또는 무언가)를 설정할 수 있습니다.
  4. 함께 라이브러리를 설치할 수 있습니다;) 알고 싶은 것 중 하나가 없습니다.
  5. 보통 require(_once) 또는 include(_once)입니다. 클래스의 경우 오토로더를 설정할 수 있습니다. PHP 매뉴얼을 참조하십시오.
  6. 패키지/아카이브 (zip, gz, tarball, ..) 다운로드 링크를 만드시겠습니까? 또한 : 당신이 원하는 것을 모릅니다.

PHP 라이브러리를 작성하고 포장 및 배포에 대한 간단한 방법을 원한다면 PEAR을 살펴보십시오.

+0

고마워,하지만 왜 PEAR가 "패키지를 만들고 .. 다운로드 링크를 만드는 것"보다 더 단순 할 수 있는지에 대해 알려줄 수 있습니까? – Yarin

+1

배로 설치하는 것은'pear channel-discover mychannel.example.com'과'pear install mychannel.example.com/MyPackage' 두 줄입니다. 채널 서버 (Google for pearfarm;)가 없다면 다운로드 할 수있는 패키지도 제공하십시오. 설치는'pear install MyPackage-x.y.z.tgz' (x.y.z는 패키지 파일 버전에 따라 다름)와 유사합니다. 패키지를 만들려면'package.xml' ("pear package.xml";))을 작성해야합니다. 그러나 그것이 존재하면 단지 짧은'pear package'만으로 새로운 패키지를 만들 수 있습니다. 귀하의 호스트 또는 채널 서버. – KingCrunch

13

몇 점 ...

PHP, 파이썬, 자바, 또는 .net과 같은 네이티브 "수입"인프라가 없습니다. PHP에서 라이브러리를 사용할 수있는 몇 가지 방법이 있습니다.

  1. PHP 바이너리로 컴파일하십시오. 이것은 가장 진보 된 방법이며 특별한 필요가 없다면 일반적으로 바람직하지 않습니다.

  2. PHP 모듈로 서버에 설치하고 PHP.ini에 포함하십시오. PHP 프로그래머의 관점에서이 확장은 PHP의 일부입니다. 항상 사용할 수 있습니다. PHP 자체를 다시 만들 필요없이 추가하고 제거하는 것이 더 쉽습니다.

  3. 어딘가에 서버에 PHP 코드를 설치하고 PHP 스크립트에 PHP 코드를 포함하십시오.

  4. 라이브러리 사본을 프로젝트에 저장하고 PHP 스크립트에 포함하십시오.

- 기본적인 수준에서
은, 코드 (정적 또는 동적) 인터프리터의 일부 중 하나, 또는 당신의 프로젝트로 에드()이 (가) 있습니다 평범한 오래된 PHP 코드입니다.

귀하의 목적을 위해서, 나는 산업 표준 PHP 배포판을 사용하는 것이 좋습니다 (좋은 리눅스 OS를 선택하고 PHP를 사용하는 것). 인터프리터 수준에서 필요한 거의 모든 라이브러리는 추가 패키지로 제공되며, 그 복잡성은 매일 그렇게하는 사람들에게 달려 있습니다.

레드햇/CentOS의에

, 당신은 실행할 수 있습니다

yum install php php-memcached php-gd php-pecl

- 당신이 사용할 수있는 라이브러리의 모든 다른 종류에 대해서는
, 그것은 좋은 PHP 프레임 워크를 채택 할 가능성이 최선의 방법 그것은 당신을 위해 모든 것을 처리합니다.

몇 가지 예는 다음과 같습니다

  1. 젠드 프레임 워크
  2. CakePHP의
  3. CodeIgniter는
  4. http://www.phpframeworks.com/
  5. 기타 ...

(하지 순서에 상관없이, 단지 사람이 마음에왔다)

PHP와 확장의 컴파일 된 측면을 관리하기 위해 RPM 또는 유사한 방법을 사용하는 표준 접근 방식을 취한다면 좋은 견고한 프레임 워크가 필요한 추가 PHP 라이브러리 코드를 모두 포함하도록 처리 할 것입니다.

최종 결과는 제품을 제공하는 데 초점을 맞추고 다른 방법으로는 배우고 발명해야하는 모든 인프라에 집중하는 것이 아닙니다.

-
php.ini의 구문 분석 및 PHP는 (아파치 번 서버 시작에 따라, 명령 라인마다) 시작할 때 실행됩니다. 그것은 많은 설정을 정의하고, 많은 모듈을 포함하고, 그 모듈을 구성합니다.

실제로 php.ini의 일부 설정은 PHP의 ini_set() 함수로 대체 할 수 있습니다. 그러나 이는 일부 설정에서만 유효합니다. 스크립트를 시작하기 전에 다른 설정을해야합니다.

아파치에서 실행하면 .htaccess<VirtualHost> 지시어에 해당 디렉토리/가상 호스트에 대한 PHP.ini를 완전히 덮어 쓸 수 있습니다.

(내 구문을 정정하고 잘못된 경우이 메모를 제거하시기 바랍니다)

<VirtualHost *> 
    ServerName www.example.com  
    DocumentRoot /home/joe/site/docroot 
    php_value include_path "/home/joe/site/php-code" 
</VirtualHost> 

- 자신의 라이브러리를 포장하는 가장 좋은 방법에 대해 6 번 질문에 대한 응답으로
, 내가 제안 먼저 도서관의 필요성을 평가하십시오. 그리고 당신이 정말로 무언가에 있다면, 사람들이 그것을하고있는 가장 일반적인 방법을 찾으십시오. 간단한 라이브러리라면 멋진 웹 사이트를 가진 .php 파일이면 충분합니다.

-
조금 덜컹 거리기는하지만이 방향이 올바른 방향으로 향하기 바랍니다.

+0

매우 도움이되었습니다. - 감사합니다. – Yarin