Symfony(2) Template file - php

Can any one tell me where templates/layout.php file exists in symfony ? In the tutorial its pointed to <!-- apps/frontend/templates/layout.php --> but i dont have apps folder in the project root but there is a folder called app but no fronted folder inside it..

In Symfony2, the concept of the Symfony1 apps folder doesn't exist anymore. Your project is composed of a number of Bundles, which contain your entities, controllers and views (amongst other items such as assets). In your bundle(s) is where you will find template files.
It sounds like you're trying to use the Symfony 1 tutorial with the Symfony2 sandbox/PR downloads. You might benefit from starting with the Symfony2 book instead.

It's located in:
<your_project>/apps/<your_application_name>/templates/layout.php
In the tutorial example the application name is 'frontend'.
Strange that you don't have an apps directory.

Related

Generally speaking, what is a Domain folder? What does it mean/contain?

Lately I have been looking at a lot of different php frameworks and various php packages. Whenever I first look at project, like said frameworks or packages, I try to digest it's directory structure to get a clue as to its organization. I've noticed that there are often reoccuring themes, like an "app" folder, a "tests" folder, a "src" folder, a "var" folder and so on and so forth. Usually I understand what these folders represent or mean, however lately I have been coming across a folder I do not understand in project directories: a "Domain" folder.
What does a Domain folder represent? What kinds of logic or code are contained therein? Does it have any relation to an actual Domain name?
Any and all input would be greatly appreciated.
EDIT:
To provide a specific example of what finally prompted me to ask this question, I was looking at the starter boilerplate that is generated by the php "slim" framework. You can generate this project by using php's tool composer and running:
composer create-project slim/slim-skeleton [app-folder]
Here is a link to the repo on github. Within the "src" folder of this project, there is a "Domain" folder. At least for this specific example, what does the Domain folder represent?
"Domain" is the main term in DDD (Domain Driven Design) architecture. it has many concepts to learn but in summary, we can say that the Domain section is the core section of your application logic and it contains your domain models and their services like factories and model validations. I suggest you read this reference, it can help you to comprehend DDD concepts.
https://martinfowler.com/tags/domain%20driven%20design.html
Edit:
In your example which you mentioned, as you see there is a "User" model in the domain section that there are some of their services like exceptions or interfaces of its repository.

Symfony 3 and Angular 2 Folder Structure

I am new to both Symfony and Angular and I am trying figure out how the pieces will fit together. I want to user Symfony for my back end and web api. I want to use Angular for the front end desktop like experiences.
I am not sure how the folder structure should be. Do I put my angular javascript/typescript files in folders in the root of the Symfony project and utilize their folder structure. Or do i have two bundles in my src folder. One for the back end/website. Another for the front end? Or should the back end be serving twig templates with angular components inserted?
***** Edit *****
#Tobias Xy Correct me if I'm wrong but that would be creating bundle in the src folder and keeping the files in a resources folders in it correct?
Then i see the following at the bottom:
Frontend-Based Applications
Recently, frontend technologies like AngularJS have become pretty
popular for developing frontend web applications that talk to an API.
If you are developing an application like this, you should use the
tools that are recommended by the technology, such as Bower and
GruntJS. You should develop your frontend application separately from
your Symfony backend (even separating the repositories if you want).
So they are saying make two seperate projects and not use a bundle for the front end?
If so how do you host this? On two different sites?
Symfony is a backend framework, so there is no point in adding a bundle containing only frontend files (css, javascript, etc).
See also Web Assets (Symfony Best Practices)
They say there:
Store your assets in the web/ directory.
Update 23.03.2016
Cerad wrote in the comments: "client-side angularjs and reactjs apps have their own build system just like Symfony does".
This is actually a different topic, but the article I linked to above also says something about that:
Recently, frontend technologies like AngularJS have become pretty popular for developing frontend web applications that talk to an API.
If you are developing an application like this, you should use the tools that are recommended by the technology, such as Bower and GruntJS. You should develop your frontend application separately from your Symfony backend (even separating the repositories if you want).
For Angular 2 there might be differences in the front end build system, but the structure should be similar to the one I use for Angular 1.x.
The folder structure I use to place my front end assets in something we could describe as a three level process. Let's just enumerate the three levels here:
Level 1 - The src/AppBundle/Resources/Private folder
Inside this folder, I place any front end assets that need any kind of processing, like transpile, autoprefix, uglify, etc. This will be the case for most JS, SCSS, LESS or HTML files of your choice. You can define the folder structure you prefer.
Level 2 - The src/AppBundle/Resources/Public folder
This will be the folder that'll contain all assets after processing AND any other asset that didn't need processing, usually images, fonts, etc. This will be the folder structure that will literally be copied over to the web/bundles/app folder in Level 3.
Note: This level is indeed redundant and can be skipped with caution. In my case, I kept it to avoid 'accidents' with the way Symfony wants to install assets by default, which will replace your web/bundles/app folder with the contents of this one. This will be the case if you use any other bundle that installs assets this way, like FOSJsRoutingBundle for example.
Level 3 - The web/bundles/app folder
This is the final public destination of your assets, and the path where you'll reference them in your code. It is just a copy of the src/AppBundle/Resources/Public folder from level 2.
Build system
You will need a front end build system to transpile your files and copy them to the respective folders in level 2 and 3. In my case for Angular 1.x I used Gulp with Node. This means you'll have gulpfile.js file, package.json file and node_modules folder in your project. I didn't care, it worked fine. Just remember to not add node_modules folder to your repo.
In production
Unless you really need to rebuild in production for some reason, you can skip level 1, level 2 and gulp related folders and files like node_modules, gulpfile.js, etc.
You could create the client side as the root document and the server side as an alias location, but careful to not overwrite the alias.
Or you could change the host.
Example 1:
[client] www.example.com/<client_root_dir>
[server] www.example.com/api/<server_root_dir>
or Example 2:
[client] www.example.com/<client_root_dir>
[server] api.example.com/<server_root_dir>

ZEND Framework folder/file structure

I'm trying to learn zend framework. I managed to install it on my localhost. However i'm having trouble understanding the folder structure? There are 5 main folders after installing the skeleton application - config, data, module, public and vendor.
I've seen some proposed folder structures online, but how to I go about it? Do I just create folders like views, controllers, models etc?
Thanks!
Vendor is where composer installs dependencies and libraries, config is where configuration lives, data is for cache etc, public is where your index.php and css/js/img assets are, you are really interested in module directory that contains application modules. For the start you only really need one module - Application, inside this directory you should have config dir that has module specific config, Module.php - module bootstrap file, view with templates structured per controller and src folder with your code. Inside your src file there is your Application module namespace directory that is placed in Application directory to mimic PSR-4 autoloader namespaces it can contain your application code in this example directory structure: Controller, Form, Model. Model can contain Service, Repository and Entity folders
If you just got started with ZF2 I suggest reading some documentation. Basic things like this can all be found in the documentation. For example here you find more about the folder structure.
I would also suggest taking a look at the ZF2 Skeleton application documentation/tutorial since this will help you understand the basics of a ZF2 application. Here an example on how to structure a new module. Building the album application yourself is a really nice way to get started.

Assets in Yii Framework

Can somebody explain in brief the use of assets folder in yii framework. I am new to yii framework
Many newcomers ask: "What do we do with the assets folder?", and the answer is "Mostly nothing".
It's important that the directory be writable by the webserver user so that Yii can publish the resources there when needed.
When a project has multiple versions (production, testing, development, etc.) do not copy the assets/ folders from one area to another; allow Yii to deploy them automatically in each area.
Do not manually edit any file under assets/ - if you have a real need to make a change, find the publishing module, edit the source, delete the subfolder under assets/, and let Yii re-publish the updated files.
Do not reference names under the assets/ folder directly (say, to get at some other module's assets). If you need to use that
Do not add the contents of the assets/ folder to any source-code control system; these files have master source in other places.
It is safe to delete everything under assets/. Yii will re-publish the assets if they are not found under assets/.
Additional info
Yii makes assets accessible by Web clients, so the goal of copying assets to a Web-accessible directory is fulfilled and returns the corresponding URL for accessing them.
Read it from http://www.yiiframework.com/doc/api/1.1/CAssetManager

how to generate an admin CRUD module in an existing symfony project

I'm going nuts with this legacy project. It was developed with the Symfony PHP framework and i never worked with it before. Seems to me that the only way to do things is using the CLI tool. But the tools work generally with all the application.
The Symfony project is organized like the following:
root directory
apps directory
and all other common directories in a Symphony project
The apps directory contains two more directories: "cms" and "site".
I want to build just ONE admin module, a CRUD, into the "cms" app.
The "cms" directory is the admin part of the application. Can you guys give me a hand to do this?
Thanks!!
run the task for generating module..
php symfony generate:module cms CRUD
where cms is the app name and CRUD is the module name

Categories