Thursday, July 9, 2009

Joomla component in Zend Framework example

Joomla is a nice CMS(content management system) and Zend Framework is once of the famous and widely adopted MVC Framework since its first release. One of the nice thing about Zend is its loosely coupled components.

Keep in mind that component in joomla and Zend Framework don’t refer to the same concept. Those who have worked in Joomla and Zend Framework know the difference.

In this article I’m not going to discuss what Zend and Joomla are all about and how component is different in both, but instead I’m going to share a little secret of how to develop joomla component in Zend Framework.

This article is not for those who are unaware of joomla and Zend.

Although joomla has own API for developing its components and modules, but you can use any php code in addition to its own API.

Reason is simple. Joomla is developed in php.

As Zend also used php behind the scene, so both can interact easily.

This was a bit of introduction.

While discussing all these things I assumed that you have little knowledge of joomla and have some knowledge of Zend Framework as well.

So let’s dig in.

Before writing any code you will need to successfully download and install joomla. Also download Zend and save it in the directory of your choice.

Once successfully installed joomla, open joomla/administrator/components and create a folder called com_yourcomp.

This is your component folder. You will need to create a file named yourcomp.php

If you want to add component in your administrator, the name should be admin.yourcomp.php.

That’s it, you have now created a the necessary directory structure for your joomla component development.

If you write a line “Hello world!” in youcomp.php or admin.yourcomp.php and browse your page as

http://localhost/joomla/index.php?option=com_yourcomp

you will see

“Hello world” printed.

These are the minimum requirements for developing joomla component.

Now we will using Zend Framework classes to add code to this file plus we will create Zend directory structure in order to work with Zend MVC.

Create following directory structure in your joomla/administrator/components.


Here you can see that my component name is com_advertisers.

In this directory I’ve

* admin.advertiser.php file
* application directory
* Joomla directory

The file admin.advertiser.php will serve as the bootstrap file.

Application directory contain specific directory for controllers, models and views.

The most important role is played by our Joomla directory in developing joomla component in Zend Framework.

This directory contain Controllers/Plugins/Router.php file.

This file contains code for calling specific action based on particular task. Before going to discuss code in the Router.php file, I’m going to show the code need in our admin.advertisers.php file.
<?php
define('ROOT_DIR', dirname(__FILE__));
set_include_path('.'
. PATH_SEPARATOR . ROOT_DIR . '/'
. PATH_SEPARATOR . ROOT_DIR . '/application'
. PATH_SEPARATOR . ROOT_DIR . '/application/models'
. PATH_SEPARATOR . get_include_path()
);

require_once "Zend/Controller/Front.php";
require_once "Joomla/Controllers/Plugins/Router.php";

$frontController = Zend_Controller_Front::getInstance();
$frontController->throwExceptions(true);

$frontController->registerPlugin(new Joomla_Controllers_Plugins_Router());
$frontController->setControllerDirectory(ROOT_DIR.'/application/controllers');

$frontController->dispatch();

In the first few lines I have included path to our com_advertisers directory, application directory and models directory.

Next I include Zend Front Controller files and Router.php file. I’ll discuss code in the Router.php file later as it contain the most important code.

Next I initialize front controller, register Router Plugin class which is defined in our Router.php file, set controller directory and call dispatch.

That’s it. We have now defined our bootstrap file.

One important thing is setting path to our library files that contain Zend component.

You can include path using set_include_path or set it in your php.ini file.

If you don’t include this path, your application will not work as you expected.

Now go to controllers directory and create IndexController.php and write the following code in it.
<?php

require_once('Zend/Controller/Action.php');
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
}
public function editAction()
{
}
public function saveAction()
{
}
}

Noting special here. I’ve created only three actions.

Go to your application/views/scripts directory and create directory called index and create three files index.phtml, edit.phtml and save.phtml.

The code above is what you will need to work with Zend Framework MVC. In order to integrate this code with joomla will need one additional files. In my case the file is Router.php

I have create this file in com_advertiser/Joomla/Controllers/Plugins/ directory.

The code contain in this file is
<?php

require_once('Zend/Controller/Plugin/Abstract.php');
class Joomla_Controllers_Plugins_Router extends Zend_Controller_Plugin_Abstract
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$task = $request->getParam('task')
switch($task) {
case 'edit':
$request->setActionName('edit');
break;
case 'save':
$request->setActionName('save');
break;
default:
$request->setActionName('index');
break;
}
}
}

First I’ve include plugin class and then extended my Router class from Zend_Controller_Plugin_Abstract.

This Zend_Controller_Plugin_Abstract class contain a method preDispatch that is called before any controller is called in the routing process.

In the preDispatch method, I get the param “task” and write a switch statement to check this param. If it is edit, I give control to my editAction of the default IndexController. And similarly if it is save, I route request to my saveAction and by default, if no parameter is specified, the request will be dispatched to indexAction of my IndexController.

That’s it.

Now if you write

http://localhost/joomla/administrator/index.php?option=com_advertisers&task=save

It will show what ever you have written in your save.phtml file.

And similarly if you write

http://localhost/joomla/administrator/index.php?option=com_advertisers&task=edit

it will route you to editAction and will display whatever you have define there.

Any question and suggestion are welcomed.

143 comments:

  1. FAHEEM -> thks alot for this tutorial!!!
    I will prove!!
    Suggestion: you have the base, could you make a plugin? could be great!! ;D

    ReplyDelete
  2. Hi,

    Intresting tutorial.

    I encounter the folowing problem intregrating different controllers with joomla,

    I got the folowing message:

    Class 'JModuleHelper' not found in www\joomla\administrator\templates\khepri\index.php on line 41

    Thanks

    ReplyDelete
  3. Is there Any Sample Joomla Module which is build on Zend Framework

    Dan

    ReplyDelete
  4. Great tutorial. I hesitate to use ZF for the MVC since Joomla already has a lot of overhead in it's MVC. An empty component does around 4MB per request. Adding ZF on top of that, I don't know. But great tut none the less.

    ReplyDelete
  5. Hi,
    Very goog tutorial.

    The problem with the JmoduleHelper is linked with the Zend Autoloader.

    Youm ust include the class that you need to use and not instanciate the Autoloader.

    That's all.

    ReplyDelete
  6. Great Job
    If you have a second controller or a modular ZF application, how do you manage its routing from joomla URL to ZF internal URI?

    ReplyDelete
    Replies
    1. My suggestion would be to extent the functionality of the Joomla_Controllers_Plugins_Router class.

      To illustrate how this can be achieved I'll take the following URL:

      /index.php?option=com_advertisers&module=mymodule&controller=mycontroller&action=myaction

      and then in the router plug in you have something like:

      getParams();

      // If module, controller, task/action are set assign them to the request
      isset ($params['module']) ? $request->setModuleName($params['module']) : null;
      isset ($params['controller']) ? $request->setControllerName($params['controller']) : null;
      isset ($params['action']) ? $request->setActionName($params['action']) : null;


      }
      }
      ?>

      You have two preconditions with this approach.
      1. You have set modular architecture in your front controller
      2. You have set default values for: module, controller, action because as you can see those values are set in the request only if the exist as variables in the request (params).

      Hope it helps

      Delete
  7. Good post about joomla. I think mostly website is using that joomla. because it can handle easy accept so as. Joomla Developers

    ReplyDelete
  8. nice tutorial thnks

    ReplyDelete
  9. I wanted to stop by and let you know, I read this article a while ago and loved the idea. So I have taken the basics and run with them. Basically, I am creating a component to run the Zend apps in the system. I would love your input on my project and any thoughts you may have: http://joomlazend.rbsolutions.org/

    ReplyDelete
  10. I wanted to know if i can install joomla and zend optimizer on a local machine and check as to how the performance has improved on the same desktop.

    thanks
    Tanvi

    ReplyDelete
  11. I thought I know everything (or almost) about Joomla. I was soo-o-o wrong! Thanks for wonderful tutorial!

    ReplyDelete
  12. Thanks this was inspirational. I did things a little bit differently, but seeing that others had brought Zend into Joomla successfully encouraged me to do so. I was able to build my component much faster using Zend capabilities. I was also inspired by the anonymous guy who took it and ran with it and created http://joomlazend.rbsolutions.org/
    I didn't see that comment until after I started my own thing so my approach was a little different, but I used that project to solve a few problems with what I had done. In the future I plan to start with that project as a base.

    ReplyDelete
  13. Nice framework explanation.It really excellent and great information.i am glad to write this comments.It is also very impressive.Thanks for making it.

    ReplyDelete
  14. Such a nice and unique information sharing. thanks for that.
    - Dividend tax

    ReplyDelete
  15. We offer high end Site Design and SEO services in New York. We explore new horizons regularly to get you the edge over competitors.

    - website companies

    ReplyDelete
  16. A great article explaining about website development very clearly. I have no idea how many people will read your post, because I already send your post to my friend list on twitter, facebook and stumble upon.

    ReplyDelete
  17. Non-Profit Logo Design
    Accurate results and precision is the base you select the developers to redesign your portal. You have won our satisfaction level and further we will surely work with you.

    ReplyDelete
  18. Thanks for sharing such useful information. It will helpful for those people what they really need.

    ReplyDelete
  19. Update yourself with the latest news on the trading world. If you scrutinize the daily news about equity market, you surely will come to know how various online sharks (platforms) are duping the investor in the shape of money lenders.

    ReplyDelete
  20. really amazing blog and I was thankful to you for sharing such a useful information.
    - CRM for Iphone

    ReplyDelete
  21. Hey, Absolutely abundant work, I would like to accompany your blog anyhow so amuse abide administration with us,

    Advertising agencies in pakistan

    ReplyDelete
  22. Finally a real comment: I just used this for a project of mine which had to be integrated with Joomla after the fact. All of my routing and such was dependent on the standard Zend route, but that doesn't work in Joomla. I took Rob Allen's query router and updated it a bit to include some Joomla things like the option: http://pastebin.com/A5xSVmNA Modifications are at like 91-95 to account for the option and ajax raw format controller

    ReplyDelete
  23. Are you looking for an expert, experienced and equally dedicated Joomla Developer for your new project or for the maintenance of your current project? Our Joomla Web Developer’s team of skilled professionals develops or modify modest to complex Joomla Web Application Development. Our specialized Joomla web developer delivers cost-effective solutions with accuracy and timeline in classify to develop Joomla based website for superior efficiency and usability of CMS.

    ReplyDelete
  24. The best design of website could making in only joomla tutorials.Because i designed one website in joomla tutorials.It was very nice compared to other tutorials websites Web Design Services Bangalore | Web Designing Company Bangalore

    ReplyDelete
  25. This article shares great information, thanks for sharing it with us...
    Yasir Jamal

    ReplyDelete
  26. Really nice thing. And actually this will be included with whatever they have to involve in particular actions and all. Nice and also i am expecting much more posts from you. Ecommerce Website Design Company In Dubai-UAE

    ReplyDelete
  27. Nice blog. Thanks for sharing such great information.Inwizards Inc is a Joomla web Development company offers quality joomla development services best in web industries. Intrested click here - Hire Joomla Developers, Joomla Development Services

    ReplyDelete
  28. Hey buddy I just desired to let you know that I really like this piece of writing, keep up the superb work!
    "seo services dubai"

    ReplyDelete
  29. Thank you for sharing such a great information with us about Joomla.

    ReplyDelete
  30. Hi,

    good information

    Web application development services will successfully change the execution of your online business So, hire our skilled Ecommerce website company to get customized applications for your business.

    Best Website Designing and Development Company
    "
    Ecommerce Website Development Company
    "
    Zend Framework

    ReplyDelete
  31. Very interesting to read this blog. Keep sharing the updates with us.
    SEO Dubai

    ReplyDelete
  32. If you are looking for Joomla Development Services India, we provide custom solutions that will add value to your website and help you run your Joomla website successfully.


    ReplyDelete
  33. If you are looking for Joomla Development Services India, we offer customized solutions that will add value to your website and help you manage your Joomla website successfully. www.digiorbite.com

    ReplyDelete
  34. Hey I loved the way you shared the valuable information with the community. I would say that please continue these efforts and we want to hear more from you.pandaexpress.com/feedback talktowendys

    ReplyDelete
  35. Hi guys! If you are alone and want female companionship, then please follow me on the links given below. I like to have sexual relationship daily with different persons. If you are interested in me. Go to the site and book your appointment to have intercourse with me on bed at night with full erotic entertainment.

    Click here ||Model escorts in Kolkata ||
    Click here ||Collage Escorts in Kolkata ||
    Click here ||Ecorts in Mumbai||

    Click here ||Escorts girls in Kolkata||
    Click here ||Escorts in Salt Lake||
    Click here ||Model Escorts in Mumbai||

    Click here ||West bengal call girls||
    Click here ||New town Escorts||
    Click here ||Andheri Escorts||

    ReplyDelete
  36. Really an interesting and amazing post. Thanks for sharing this wonderful informative article here. I appreciate your hard work SEO Company in Bangalore | Digital Marketing Company in Bangalore | Web Designing Company in Bangalore

    ReplyDelete

  37. It is amazing post, i am really impressed of your post, its realy useful. Thank you for sharing This article.Seo Expert in Pakistan

    ReplyDelete
  38. Ever heard that Wendys is offering you the chance to take talktowendys Customer Satisfaction Survey where you can win Free BOGO Sandwiches and much more at Wendys Restaurant.

    ReplyDelete
  39. This comment has been removed by the author.

    ReplyDelete
  40. Ricunniscà u vostru articulu hè assai bè. Grazie mille per spartà un interessante articulu

    giảo cổ lam 5 lá

    giảo cổ lam 7 lá

    giảo cổ lam khô

    giảo cổ lam 9 lá

    ReplyDelete
  41. Có lẽ cần phải trải qua tuổi thanh xuân mới có thể hiểu được( bài tập toán cho bé chuẩn bị vào lớp 1 ) tuổi xuân là khoảng thời gian ta( dạy trẻ học toán tư duy ) sống ích kỷ biết chừng nào. Có lúc nghĩ, sở dĩ tình yêu cần phải đi một vòng tròn lớn như vậy, phải trả một cái giá quá đắt như thế,( phương pháp dạy toán cho trẻ mầm non ) là bởi vì nó đến không đúng thời điểm. Khi có được( Toán mầm non ) tình yêu, chúng ta thiếu đi trí tuệ. Đợi đến khi( Bé học đếm số ) có đủ trí tuệ, chúng ta đã không còn sức lực để yêu một tình yêu thuần khiết nữa.

    ReplyDelete
  42. ဆောင်းပါးအတွက်ကျေးဇူးတင်ပါတယ်။ သငျသညျပျြောရှငျမှုနှင့်အောင်မြင်မှုဆန္ဒရှိ

    giảo cổ lam giảm cân

    giảo cổ lam giảm béo

    giảo cổ lam giá bao nhiêu

    giảo cổ lam ở đâu tốt nhất

    ReplyDelete
  43. Your blog is great! I really enjoyed reading it, it has helped me very much.
    Divorce lawyer in Lahore

    ReplyDelete
  44. ຂໍ້ມູນໃຫມ່, ຂ້າພະເຈົ້າກໍ່ຢາກຂໍຂອບໃຈທ່ານ.

    Lều xông hơi khô

    Túi xông hơi cá nhân

    Lều xông hơi hồng ngoại

    Mua lều xông hơi

    ReplyDelete

  45. "I loved the post, keep posting interesting posts. I will be a regular reader...

    https://www.smm.com.pk/"

    ReplyDelete
  46. "I loved the post, keep posting interesting posts. I will be a regular reader...

    hairclinic.pk

    ReplyDelete
  47. "I loved the post, keep posting interesting posts. I will be a regular reader...

    hairclinic.pk

    ReplyDelete
  48. "I loved the post, keep posting interesting posts. I will be a regular reader...

    hair transplant in lahore

    ReplyDelete
  49. "I loved the post, keep posting interesting posts. I will be a regular reader...

    hair transplant in rawalpindi

    ReplyDelete
  50. "I loved the post, keep posting interesting posts. I will be a regular reader...

    hair transplant in pakistan

    ReplyDelete
  51. "I loved the post, keep posting interesting posts. I will be a regular reader...

    Rent a car from Islamabad to Murree

    ReplyDelete
  52. """I loved the post, keep posting interesting posts. I will be a regular reader...

    hair transplant pakistan

    ReplyDelete
  53. "I loved the post, keep posting interesting posts. I will be a regular reader...

    hair transplant in pakistan

    ReplyDelete
  54. I loved the post, keep posting interesting posts. I will be a regular reader...

    Rent a car from Saifal Muluk lake

    ReplyDelete
  55. I loved the post, keep posting interesting posts. I will be a regular reader...

    Rent a car from Islamabad to Kashmir tour

    ReplyDelete
  56. I loved the post, keep posting interesting posts. I will be a regular reader...

    SEO Company London

    ReplyDelete
  57. "I loved the post, keep posting interesting posts. I will be a regular reader...

    hairclinic.pk

    ReplyDelete
  58. "I loved the post, keep posting interesting posts. I will be a regular reader...

    yourcar.pk

    ReplyDelete
  59. "I loved the post, keep posting interesting posts. I will be a regular reader...

    rent a car in islamabad

    ReplyDelete
  60. "I loved the post, keep posting interesting posts. I will be a regular reader...

    rent car islamabad

    ReplyDelete
  61. Vanskeligheter( van bi ) vil passere. På samme måte som( van điện từ ) regnet utenfor( van giảm áp ) vinduet, hvor nostalgisk( van xả khí ) er det som til slutt( van cửa ) vil fjerne( van công nghiệp ) himmelen.

    ReplyDelete
  62. "I loved the post, keep posting interesting posts. I will be a regular reader...

    rent a car islamabad without driver

    ReplyDelete
  63. "I loved the post, keep posting interesting posts. I will be a regular reader...

    https://www.seomagician.co.uk"

    ReplyDelete
  64. I’m really impressed with your blog article, such great & useful knowledge you mentioned here.
    Keep up the great work.

    Eye lens price in Pakistan

    ReplyDelete
  65. This comment has been removed by the author.

    ReplyDelete
  66. I loved the post, keep posting interesting posts. I will be a regular reader


    https://talkwithstranger.com/

    ReplyDelete
  67. Really it is a very nice topic and Very significant Information for us, I have think the representation of this Information is actually super one. . new metro city

    ReplyDelete
  68. Really it is great topic and important Information for us, I think the representation of this Information is actually greater. Manage Google Shopping Ads

    ReplyDelete
  69. Дээд чанар бол зүгээр л( đá ruby thiên nhiên ) санаатай биш юм. Энэ нь өндөр( đá ruby nam phi ) түвшний төвлөрөл, тусгай хүчин( Đá Sapphire ) чармайлт, ухаалаг ( đá sapphire hợp mệnh gì )чиг баримжаа, чадварлаг туршлага, ( đá tourmaline đen)саад тотгорыг даван туулах( khám phá nhẫn cưới đá quý thiên nhiên ) боломжийг хардаг.

    ReplyDelete
  70. Nội Thất Trẻ Em Bảo An Kids là doanh nghiệp chuyên thiết kế và thi công các sản phẩm nội thất trẻ em bao gồm: Phòng ngủ trẻ em, Giường tầng, bàn học đẹp, kệ sách, bàn học hiện đại, giường tầng đa năng cho bé trai

    ReplyDelete
  71. Tökezlediğiniz ve ayağa kalkıp(  taxi Nội Bài ) devam edemediğiniz( taxi nội bài hà nội ) gibi görünen zamanlar vardır, lütfen bazen( taxi sân bay nội bài rẻ nhất )  zorlukların üstesinden gelmenize yardımcı olacak, yaşamınızla(số điện thoại taxi nội bài ) ilgili iyi ( taxi ra sân bay nội bài giá rẻ ) et. Aşağıdaki makale, yaşam hakkında 100'den fazla güzel kelime size tanıtır.

    ReplyDelete
  72. Appreciating the hard work you put into your site and detailed information you offer. It’s nice to come across a blog every once in a while that isn’t the same out of date rehashed materialStephill generators

    ReplyDelete
  73. Very nice article, very informative and provides alot of insight of the project. new metro city

    ReplyDelete
  74. Very Informative topic I liked it very much. You have covered the topic in detail thumbs up. influencer marketing agency

    ReplyDelete
  75. I really like your work and thanks a lot because its help me a lot Cobone Discount code

    ReplyDelete
  76. Very Informative topic I liked it very much. You have covered the topic in detail thumbs up Headset W Mic Crystal Case

    ReplyDelete
  77. I have recently started a blog, the info you provide on this site has helped me greatly in blogging. Thanks for all of your work and timeInstagram affiliate marketing

    ReplyDelete
  78. Hi There, love your site layout and especially the way you wrote everything. I must say that you keep posting this type of information so that we may see the latest newsAccounting Software for organization

    ReplyDelete
  79. Hi There, love your site layout and especially the way you wrote everything. I must say that you keep posting this type of information so that we may see the latest newsRoofing Services NYC

    ReplyDelete
  80. I have recently started a blog, the info you provide on this site has helped me greatly in blogging. Thanks for all of your work and time HamzaAndHamzaTaxReturn

    ReplyDelete
  81. I have recently started a blog, the info you provide on this site has helped me greatly in blogging. Thanks for all of your work and time HamzaAndHamzaTaxReturn

    ReplyDelete
  82. I loved the post, keep posting interesting posts. I will be a regular reader...
    villas for sale in Islamabad

    ReplyDelete
  83. Indian Web Developers is the bestWebsite Development Company India which specializes in web designing and developing custom websites at affordable rates. IWD are the top web development company in India with experience on Wordpress Development, Laravel Development and magento development. We have expert website developers and Web design India who can work full time, part time or hourly to design custom websites.

    ReplyDelete

  84. This post is really nice and informative. The explanation given is really comprehensive and informative.I want to share some information regarding the digital marketing course in vizag .Thank you

    ReplyDelete
  85. I am very happy to read this. This provides good knowledge
    Travel and tour master

    ReplyDelete
  86. I really like this concept. Hoping to continue the new ideas with professional excellence. Thanks for sharing.
    electric kettle made in usa
    Younkers Credit Card

    ReplyDelete
  87. I really like this concept. Hoping to continue the new ideas with professional excellence. Thanks for sharing.
    electric kettle made in usa

    ReplyDelete
  88. Thanks for sharing this information with us and it was a nice blog.
    Best Digital Marketing Agency in Hyderabad. Envizon studio offers Digital Marketing services to companies of all sizes. Based out to Hyderabad, Envizon studio is one of the Top Digital Marketing Agencies and has helped startups and established companies go online and achieve their marketing goals through digital marketing.
    Digital Marketing Agency in Hyderabad
    SEO Services in Hyderabad
    Digital Marketing Company in Hyderabad
    Digital marketing Services in Hyderabad

    ReplyDelete
  89. Looking for Joomla website development company? DixInfotech is one of the leading joomla development company in Faridabad Delhi NCR India. For more details, contact us today!

    ReplyDelete
  90. Thanks for sharing your valuable information with us, I ll keep in my mind It will help me in my coming future, Regarding doing this type of work.

    Visit our site for getting all Satta King, Satta King 2020, Disawar Satta King, Satta King Chart, Gali Satta King Results.

    ReplyDelete
  91. This comment has been removed by the author.

    ReplyDelete
  92. This comment has been removed by the author.

    ReplyDelete
  93. This comment has been removed by the author.

    ReplyDelete
  94. Hi Thank you for sharing this wonderful article. You describe all the points so well.
    Greetings from ATS Consultantx! We provide the E Filing Tax Portal under the supervision of professional consultants. Which allow to salary individuals or others to register and file their tax returns with an easy and affordable slant. The purpose of this affords to help taxpayers in order to mitigate their fear about FBR and empower them as responsible citizens of Pakistan.
    E Filing Tax Portal
    Salary Tax Calculator
    Business Tax Calculator
    Rental Tax Calculator
    Register NTN
    File My Return
    ATS Blogs
    ATS Services

    ReplyDelete
  95. Thanks for the interesting content. I like your post and your blog is amazing.
    If you are interested in Video Downloader apps you can check my blog site. It is new and really informative.

    smartnews for pc windows 10 7 mac

    ReplyDelete
  96. The Best influencer marketing agency in Delhi - code caliber

    Influencer marketing is one of the best ways to get a word out about your business and products. In the world of digital marketing, influencer marketing agency in Delhi have become an essential part of any strategy. The influencers are people who have a large number of followers on social media platforms such as Instagram, YouTube, and Facebook. They can help you reach a sizable audience with their posts and videos.

    ReplyDelete
  97. Word press development company in India

    The best Word press development company in Indiais variable; we can offer flexible packages to suit your needs and ensure absolute satisfaction at every step. The best Word Press development company in India, code calibre you with agile and scalable solutions to satisfy all your needs rights from content management to marking with our wordpress solutions.

    ReplyDelete
  98. Nice to read your blog regarding joomla component in zend framework. Further, if someone is looking for seo services in Dubai he may visit the link provided here. Also read the Methods of Performing an in-depth Technical SEO Audit for Your Website?

    ReplyDelete
  99. Happy to be able to visit your blog. Thanks for sharing information.

    Best salon in vijayawada
    Bridal makeup in vijayawada.

    http://hiwagavijayawada.in/

    ReplyDelete
  100. Thanks for sharing..
    Bridal makeup in vijayawada.

    http://hiwagavijayawada.in/

    ReplyDelete
  101. Thanks for sharing good information about the Joomla Development service. If looking for a Joomla Development Company in Delhi, then Acnosoft is the best company.

    ReplyDelete
  102. Boost your online visibility with Best SEO Company Noida! Cutting-edge strategies tailored to your business for top search ranking results.

    ReplyDelete
  103. An example of integrating a Joomla component within the Zend Framework demonstrates the flexibility and interoperability between different PHP frameworks, enhancing the development capabilities of web applications and for that you can visit CMOLDS a web development company in dubai offering complete and most authentic services in this domain with great expertise.

    ReplyDelete