programing

Wordpress를 CMS로 사용하는 Symfony 2 응용 프로그램

javamemo 2023. 3. 11. 08:34
반응형

Wordpress를 CMS로 사용하는 Symfony 2 응용 프로그램

sf2 어플리케이션을 구축하여 WordPress의 모든 콘텐츠(카테고리, 기사, 페이지, 미디어 등)를 국제화(wpml plugin)로 유지하고 싶습니다.앱에는 자체 관리자가 있으며 사용자는 콘텐츠를 관리하기 위해 WordPress 백엔드에 로그온합니다.

라우팅 시스템에서 sf2 컨트롤러를 백업하여 루트를 식별하고 그 기능을 수행할 수 있는 첫 번째 기회를 주는 것이 계획입니다.그렇지 않으면 WordPress가 페이지 렌더링을 처리하도록 해야 합니다.

또한 최신 기사를 sf2 콘텐츠와 함께 게재하고 싶은 홈페이지 등의 sf2 페이지에 WordPress 콘텐츠를 가져와야 한다고 생각합니다.

이런 거 해본 사람 있어?장단점?구현 방법에 대한 제안사항감사합니다!

Symfony-WordPress 통합에 접근하는 이 두 프로젝트를 다른 각도에서 살펴보십시오.

  • https://github.com/ekino/EkinoWordpressBundle은 WordPress의 Symfony 컴포넌트와 서비스를 사용할 수 있는 방법을 제공합니다.
  • https://github.com/outlandishideas/symfony-wordpress-edition에서는 Symfony 앱에 WordPress 코어를 로드할 수 있습니다(노출:제가 메인 작가입니다.)

Symfony2 엔티티를 사용하여 Wordpress 데이터 가져오기, Wordpress 인증, Twig에서 Wordpress 기능 사용 등 격차를 좁히는 데 도움이 되는 Sf2 번들이 있습니다.아마 그걸로 일하실 수 있을 거예요.

최근에 한 프로젝트에서 했는데 정말 잘 작동했어요.

이 작업을 수행하려면 2개의 데이터베이스와 2개의 엔티티 매니저(sf2 어플리케이션용, Wordpress용)가 필요합니다.적어도 그렇게 하는 것이 가장 효과적입니다.한쪽에 실제 sf2 어플리케이션이 있고 측면에 Wordpress를 사용하여 동적 페이지를 처리할 수 있습니다.

다음으로 설정 예를 나타냅니다.

//app/config.yml
doctrine:
dbal:
    default_connection:   default
    connections:
        default:
            driver:   "%database_driver%"
            host:     "%database_host%"
            port:     "%database_port%"
            dbname:   "%database_name%"
            user:     "%database_user%"
            password: "%database_password%"
            charset:  UTF8
        cms:
            driver:   "%database_driver_cms%"
            host:     "%database_host_cms%"
            port:     "%database_port_cms%"
            dbname:   "%database_name_cms%"
            user:     "%database_user_cms%"
            password: "%database_password_cms%"
            charset:  UTF8

orm:
    auto_generate_proxy_classes: %kernel.debug%
    default_entity_manager:   default
    entity_managers:
        default:
            connection:       default
            mappings:
                MyFirstBundle: ~
                MySecondBundle: ~ #if you have more than one bundle in your application
        cms:
            connection:       cms
            mappings:
                KayueWordpressBundle: ~

그리고 카유에WordpressBundle 설정:

//app/config.yml
kayue_wordpress:
# Site URL must match *EXACTLY* with WordPress's setting. Can be found
# on the Settings > General screen, there are field named "WordPress Address"
site_url:       %blog_url% 

#Note : I put the site_url in my parameters.yml to get this working on all my environments (see comment below) 

# Logged in key and salt. Can be found in the wp-config.php file.
logged_in_key:  'samethingasinyourwpconfig'
logged_in_salt: 'samethingasinyourwpconfig'

# Optional: WordPress cookie path / domain settings.
cookie_path:    '/'
cookie_domain:  null

# Optional: Custom table prefix. Default is "wp_".
table_prefix:   'wp_'

# Optional: Entity manager configuration to use (cache etc). Default is 'default'.
entity_manager: 'cms' #here is where i put the name of my new entity manager defined above

Kayue 사용WordpressBundle, 이제 "cms" 엔티티 관리자를 사용하여 Wordpress의 모든 요소에 액세스할 수 있습니다.Wordpress 메뉴를 사용하여 어플리케이션 메뉴에 추가된 새로운 페이지를 동적으로 통합할 수 있었습니다.또한 Wordpress에서 컬을 사용하여 동일한 머리글과 바닥글을 유지할 수 있었기 때문에 모든 것이 거의 매끄럽게 진행되었습니다.

실용적인 측면:

워드프레스를 프로젝트의 루트 디렉토리에 있는 파일에 설치했습니다.즉, Git을 사용할 수 있고, Capifony를 사용하여 전개할 수 있습니다.

Capifony를 도입하기 전에 설계, 플러그인 및 기타 기능을 로컬 환경에서 추가/편집하고 Git 저장소에 푸시해야 합니다.단, 워드프레스(페이지, 기사)의 동적 콘텐츠는 데이터베이스에 따라 다르므로 최종 콘텐츠는 프로덕션 환경에서만 작성해야 합니다.

우선 Wordpress를 Symfony 2와 통합하기 위해서는 Wordpress는 상호 운용성 표준을 따르지 않기 때문에 Symfony 2와 다른 프레임워크에 이어 이 수준의 통합이 용이하기 때문에 "glue" 계획을 마련해야 합니다.

다음으로 Symfony CMF를 체크해 주시면 감사하겠습니다.Symfony CMF는 기본적으로 Symfony 2 컴포넌트 위에 독자적인 CMS를 작성할 수 있는 콘텐츠 관리 프레임워크의 구현입니다.

세 번째이자 마지막 요점은 달성하려는 통합이 전혀 의미가 없다는 것입니다.Wordpress 위에 들어오는 요청을 처리하기 위한 간단한 레이어가 필요한 요구 사항의 첫 부분은 Wordpress의 프론트 컨트롤러 코드에 대한 간단한 해킹으로 해결할 수 있습니다.

언급URL : https://stackoverflow.com/questions/14395074/symfony-2-application-with-wordpress-as-cms

반응형